【问题标题】:WPF comboboxitem foreground color changeWPF comboboxitem 前景色改变
【发布时间】:2020-07-28 05:02:05
【问题描述】:

我正在尝试更改 wpf 中组合框的颜色,但由于某种原因它没有改变,我不知道为什么。 这些项目确实已加载,我可以告诉并验证,但我看不到它们不是白色或黑色,而是与组合框的背景相同的颜色,有点灰色。

这是我必须将组合框颜色前景更改为黑色,但不起作用。

<ComboBox Foreground="#FF000000" x:Name="cBox_nosave" Width="149.8192" Height="22" Canvas.Left="23.7296000000033" Canvas.Top="40.7904000000016">
    <ComboBox.ItemTemplate>
      <DataTemplate>
        <TextBlock Grid.Column="1" Margin="2, 1" Text="{Binding Name}" />
      </DataTemplate>
    </ComboBox.ItemTemplate>
    <ComboBox.ItemContainerStyle>
      <Style TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Foreground" Value="Black" />
      </Style>
    </ComboBox.ItemContainerStyle>
  </ComboBox>

如何将前景色更改为黑色? 在 wpf .net 4.6.1 版中工作

【问题讨论】:

  • 您是否在某处定义了一些ComboBox 样式? ComboBox 的默认前景是黑色。无需将其显式设置为黑色。
  • 不,我不知道,但它在 cms 内,并且 cms 有深色主题
  • @TechnologyResearcher:尝试将Style 属性设置为{x:Null} 以应用默认Style
  • 这似乎是原因。在控件上本地设置属性(如您所做的那样)将覆盖任何样式设置。所以造型可能不是原因。也许您的主题会遍历可视化树以显式修改每个控件的外观。您究竟是如何为您的应用程序设置主题的?
  • 我找到了我的解决方案,但它真的很奇怪,所以显然当根据列表调用调用 itemssource 的集合时,它是黑色或灰色

标签: c# wpf wpf-controls .net-4.6.1


【解决方案1】:

尝试在项目模板中设置TextBlock前景

<ComboBox Foreground="#FF000000" x:Name="cBox_nosave" Width="149.8192" Height="22" Canvas.Left="23.7296000000033" Canvas.Top="40.7904000000016">
    <ComboBox.ItemTemplate>
      <DataTemplate>
        <TextBlock Foreground="Black" Grid.Column="1" Margin="2, 1" Text="{Binding Name}" />
      </DataTemplate>
    </ComboBox.ItemTemplate>
    <ComboBox.ItemContainerStyle>
      <Style TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Foreground" Value="Black" />
      </Style>
    </ComboBox.ItemContainerStyle>
  </ComboBox>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2018-02-14
    • 2013-01-19
    • 1970-01-01
    相关资源
    最近更新 更多