根据IsEditable属性在ComboBox上设置默认填充

时间:2019-04-27 12:21:37

标签: wpf xaml

我已将所有TextBoxes和ComboBoxes设置为默认填充为“ 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中,如何将所有具有IsEditable="False"属性的ComboBox设置为具有Padding="6,3,5,3"

2 个答案:

答案 0 :(得分:1)

您可以使用触发器根据ComboBox的属性(在您的情况下为IsEditable)来更改填充。为此,请像这样设置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>

答案 1 :(得分:0)

这是在所有适用的ComboBox上使用键控样式的绝好机会:

<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的默认样式。