如何在多个组合框中添加不同的样式

本文关键字:添加 样式 组合 | 更新日期: 2023-09-27 18:06:04

我有2个组合框,我需要让一个白色和一个黑色。

1右键单击组合框>编辑模板> 编辑副本

创建新名称和Apply to All似乎没有区别,因为它总是应用于所有。主模板中的LinearGradientBrush代码总是覆盖所有组合框中的样式。它们最终都是相同的颜色

<LinearGradientBrush x:Key="ComboBox.Static.Background" EndPoint="0,1" StartPoint="0,0">
    <GradientStop Color="#FFF0F0F0" Offset="0.0"/>
    <GradientStop Color="#FFE5E5E5" Offset="1.0"/>
</LinearGradientBrush>

1右键单击组合框>编辑模板> 创建空

模板为空。我从Microsoft ComboBox模板示例代码复制,它给出了错误。

<ControlTemplate x:Key="ComboBoxControlTemplateDark" TargetType="{x:Type ComboBox}">
    <Grid/>
</ControlTemplate>

如何在多个组合框中添加不同的样式

如果你想改变背景颜色,只需使用组合框的background color属性

如果您想为不同的组合框添加自定义样式,请在资源字典文件

中定义样式

添加项目类型的新文件,然后添加以下代码

<Style x:Key="ComboboxRedStyle" TargetType="{x:Type ComboBox}">
    <Style.Triggers>
        <DataTrigger  Value="True">
              <Setter Property="BackGround" value="Red"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

<Style x:Key="ComboboxBlackStyle" TargetType="{x:Type ComboBox}">
    <Style.Triggers>
        <DataTrigger  Value="True">
               <Setter Property="BackGround" value="Black"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

在app.xaml

中添加以下代码
<Application.Resources>
    <ResourceDictionary>
          <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/projectName;component/Resources/DesignResourceDictionary.xaml"/>
            <ResourceDictionary Source="/projectName;component/Resources/FocuseSettingResource.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在包含代码之后,您可以在需要的地方调用combobox的样式,如下面的代码

<ComboBox Style="{StaticResource ComboboxRedStyle}"Margin="251,38,0,0"  VerticalAlignment="Top" Width="250"   FontWeight="Bold"/>
                  <ComboBox Style="{StaticResource ComboboxBlackStyle}"Margin="251,38,0,0"  VerticalAlignment="Top" Width="250"   FontWeight="Bold"/>