Как получить текстовое поле для заполнения столбца и автопрокрутки? - PullRequest
0 голосов
/ 26 мая 2010

В моем DataGridTemplateColumn есть следующий код:

<Controls:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
    <StackPanel Orientation="Horizontal">
        <TextBox Text="{Binding AlternateTeacherName, Mode=TwoWay}" Style="{StaticResource InputTextBox}"/>
    </StackPanel>
</DataTemplate>

Стиль:

<Style x:Key="InputTextBox" TargetType="TextBox" >
<Setter Property="Margin" Value="1" />
<Setter Property="MinWidth" Value="30" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="HorizontalAlignment" Value="Stretch" />

Проблема, которую я получаю, заключается в том, что текстовое поле правильно заполняет ширину столбца (в том числе при изменении его размера), но если я набираю текстовое поле, курсор не виден, когда достигает конца строки. Я хотел бы, чтобы текст прокручивался слева , чтобы текущий текст все еще был виден.

спасибо

1 Ответ

0 голосов
/ 26 мая 2010

Извлеките StackPanel. Он выравнивает свои элементы слева направо и не растягивается, чтобы заполнить оставшееся пространство. Вы также можете избавиться от HorizontalAlignment и MinWidth в своем стиле. Если вы должны установить MinWidth, он должен быть в столбце.

...