c# - wpf 从应用程序资源更改组合框背景
问题描述
我想将所有组合框的背景和下拉背景更改为图像,将胡佛颜色更改为透明,将胡佛边框颜色更改为白色。我尝试在“combobox”、“comboboxItem”和“checkbox”上绑定样式,但它不起作用。
这是我的组合框代码:
<ComboBox Margin="0,0,0,2" DockPanel.Dock="Top" VerticalContentAlignment="Center" VerticalAlignment="Center" ItemsSource="{Binding AllTagsForFilter}" Height="23" FontStyle="Italic" FontFamily="SEGOWP" Foreground="Gray" FontSize="12" Text="{Binding TagFilterText}" IsReadOnly="True" IsEditable="True" Focusable="False">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox VerticalAlignment="Center" VerticalContentAlignment="Center" IsChecked="{Binding IsChecked}" Content="{Binding Name}" Height="25">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding DataContext.CmdChx_UpdateSearchTags, ElementName=self}" CommandParameter="{Binding}" />
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding DataContext.CmdChx_UpdateSearchTags, ElementName=self}" CommandParameter="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
而我目前使用的样式布局是这样的:
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.WindowStyleProp, ElementName=self, UpdateSourceTrigger=PropertyChanged}" Value="{x:Static enum:WindowStylesEnum.Dark}">
<Setter Property="Background" >
<Setter.Value>
<ImageBrush TileMode="FlipY" Stretch="Uniform" AlignmentY="Top" Viewport="0,0,33,34" ViewportUnits="Absolute" ImageSource="{StaticResource DarkBackground2}"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" >
<Setter.Value>
<SolidColorBrush Color="White"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.WindowStyleProp, ElementName=self, UpdateSourceTrigger=PropertyChanged}" Value="{x:Static enum:WindowStylesEnum.Default}">
<Setter Property="Background" >
<Setter.Value>
<SolidColorBrush Color="LightGray"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" >
<Setter.Value>
<SolidColorBrush Color="Black"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
我想要这样的东西,所以如果枚举发生更改,我可以更改属性。
解决方案
推荐阅读
- python - PyCharm 中未解决的引用错误,即使代码运行正常
- c# - 如何反转 Array.Sort 的方向 - C#
- javascript - 当我点击下一个按钮时,上一个问题必须用反向动画删除,下一个问题必须用打字效果动画显示
- c - 为什么FD_ISSET()要在accept()建立连接之前判断
- html - 设置背景颜色
- git - 与“git symbolic-ref HEAD refs/heads/my_branch”执行相同操作的瓷 git 命令?
- python - GPFlow 回归的自定义均值函数构造
- php - 无需图像 CodeIgniter 3. 如何?
- excel - 如何根据 PowerQuery 中的列汇总 # 个先前值(移动平均值)值?
- matlab - 在 Matlab 中保存相同大小的图形