Текстовое поле на Combobox в WPF - PullRequest
0 голосов
/ 07 февраля 2012
<Grid>
    <ComboBox Name="comboBox1" />
    <TextBox Name="TextBox1" />
</Grid>

В моем приложении wpf я хочу отобразить текстовое поле в поле со списком, но я не знаю, как сохранить размер текстового поля, чтобы оно охватывало только часть поля в поле со списком, а не часть со стрелкой вниз в поле со списком?

like this

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Вы можете сделать это как:

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="119*" />
            <ColumnDefinition Width="17" />
        </Grid.ColumnDefinitions>
        <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox1" VerticalAlignment="Top" Width="134" Grid.ColumnSpan="2" />
        <TextBox Name="textBox1" Margin="0,0,0,3" />
    </Grid>

Ключевым моментом является установка второго столбца сетки на фиксированный размер, где этот фиксированный размер представляет видимость стрелки.

хотя, как уже упоминалось, лучшее, что можно сделать, это установить для свойства IsEditable поля со списком значение true:

<ComboBox Name="combobox1" LostFocus="LostFocus" IsEditable="True"/>

для получения дополнительной информации см. Здесь: WPF ComboBox - IsEditable

0 голосов
/ 07 февраля 2012

Я не вижу веской причины размещать текстовое поле над комбинированным списком, так как сам комбобокс является редактируемым.

Но то, что вы можете сделать, это разделить ваш комбинированный список на два столбца сетки с последующим фиксированным размером столбца, включающего стрелочную часть комбинированного списка и прежний столбец, имеющий размер звезды. Пусть combobox имеет размер столбца 2 и текстовое поле 1.

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...