Combobox占位符文本主题画笔(文字颜色)

时间:2015-01-27 08:05:30

标签: c# xaml windows-store-apps windows-store

我想在windows store app(XAML / C#)中更改组合框的占位符文本颜色

这是背后的代码:

List<string> orderType = new List<string>();
orderType.Add("ANS");
orderType.Add("DG");
orderType.Add("LAB");
orderType.Add("RAD");
ComboBox orderTypeComboBox = new ComboBox();
orderTypeComboBox.ItemsSource = orderType;
orderTypeComboBox.Header = "Order Type";
orderTypeComboBox.PlaceholderText = "Choose Order Type";
orderTypeComboBox.SelectionChanged += orderTypeComboBox_SelectionChanged;

占位符文本默认颜色为黑色,我希望它为白色。

这是我尝试过的(全局),但失败了:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Default">
                <SolidColorBrush x:Key="ComboBoxPlaceholderTextThemeBrush" Color="White" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

我无法找到“generic.xaml”文件来搜索“SolidColorBrush”的正确密钥

1 个答案:

答案 0 :(得分:1)

需要更改以影响占位符颜色的是SystemControlPageTextBaseHighBrush属性:

<SolidColorBrush x:Key="SystemControlPageTextBaseHighBrush" Color="Green" />

警告:不幸的是,这不仅会影响您的ComboBox,还会影响许多其他控件。干净的方法是创建一个自定义的ComboBox样式,并为Placeholder元素修改前景色。

如果您在创建新样式时需要帮助,请查看here,如果需要,您可以在其中复制修改后的样式。