我有一个wpf c#app。
我正在使用一个组合框,我将ItemsSource设置为我的Observable集合。
我想要的是组合框的背景不是灰色的。
此控件位于UserControl中。
<UserControl x:Class="InformedWorkerClient.UserControls.ucJobStatus"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:InformedWorkerClient.UserControls"
mc:Ignorable="d"
d:DesignHeight="27" d:DesignWidth="300" Background="White">
<Grid Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ComboBox x:Name="cboJobStatus" Grid.Row="0" Grid.Column="0" Background="White"
DisplayMemberPath="Description"
SelectedValuePath="JobStatusRef"
SelectedValue="{Binding Path=JobStatus}" SelectionChanged="cboJobStatus_SelectionChanged" />
</Grid>
其他:
这是选择项目后的背景。我希望背景为白色
答案 0 :(得分:1)
由于ControlTemplate for ComboBox中存在错误,因此无法执行此操作。
可能的解决方案是复制/编辑模板并创建自己的模板。
这个问题是duplicate。或许可以通过更多信息更新答案。我搜索了wpf cant change background of combobox
,顶部链接是关于如何copy the template的MSDN答案,但即使这样,解决方案也充斥着不同Windows版本的问题,aero主题,并没有解决用户高的情况对比度开启,以及其他可访问性问题。
答案 1 :(得分:0)
我建议使用<ComboBox.ItemContainerStyle>
并为容器设置背景Transparent
。然后每个项目背景将与ComboBox
中一样。