Установить заполнение по умолчанию для ComboBox в зависимости от свойства IsEditable - PullRequest
0 голосов
/ 27 апреля 2019

Я установил для всех моих текстовых и комбинированных ящиков заполнение по умолчанию "1,3". Когда ComboxBox является редактируемым, заполнение выглядит идентично TextBoxes. Но когда IsEditable по умолчанию установлено в false, отступы не выглядят одинаково.

В App.xaml у меня уже есть:

<Application.Resources>
    <Style TargetType="TextBox">
        <Setter Property="Padding" Value="1,3"/>
    </Style>
    <Style TargetType="ComboBox">
        <Setter Property="Padding" Value="1,3"/>
    </Style>
</Application.Resources>

В App.xaml, как я могу установить для всех ComboBoxов со свойством IsEditable="False" значение Padding="6,3,5,3"?

Ответы [ 2 ]

1 голос
/ 27 апреля 2019

Вы можете использовать триггер, чтобы изменить заполнение на основе свойства (в вашем случае IsEditable) ComboBox. Чтобы сделать это, введите ваш ComboBox так:

<Style TargetType="{x:Type ComboBox}">
    <Setter Property="Padding" Value="1,3"/>
    <Style.Triggers>
        <Trigger Property="IsEditable" Value="False">
            <Setter Property="Padding" Value="6,3,5,3"/>
        </Trigger>
    </Style.Triggers>
</Style>
0 голосов
/ 27 апреля 2019

Это прекрасная возможность использовать стиль клавиш на всех применимых комбинированных списках:

<Style TargetType="ComboBox" x:Key="EditableComboBoxStyle">
    <Setter Property="IsEditable" Value="False"/>
    <Setter Property="Padding" Value="6,3,5,3"/>
</Style>

Добавьте это как ключевой ресурс в ваш App.xaml и примените его так:

<ComboBox Style={StaticResource EditableComboBoxStyle}"/>

Это переопределит ваш стиль по умолчанию для любого ComboBox, к которому вы его примените.

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