我有一个组合框:
var cmbLogin = new ComboBox()
{
Width = 200,
Height = 50,
Margin = new Thickness(20),
HorizontalContentAlignment = HorizontalAlignment.Center,
Background = Brushes.Transparent,
Foreground = Brushes.White,
Focusable = true,
};
cmbLogin.Items.Add("AAAAA");
cmbLogin.Items.Add("BBBBB");
现在我想定义样式和触发器:
Style cmbStyle = new Style(typeof(ComboBox));
cmbStyle.Setters.Add(new Setter(BackgroundProperty, Brushes.Green));
cmbStyle.Setters.Add(new Setter(ForegroundProperty, Brushes.Red));
Trigger t1 = new Trigger { Property = ComboBox.IsMouseOverProperty, Value = true };
t1.Setters.Add( new Setter(ComboBox.BackgroundProperty, Brushes.Yellow));
cmbStyle.Triggers.Add(t1);
cmbLogin.Style = cmbStyle;
但是有鼠标和没有鼠标的效果都是一样的
谢谢
最佳答案
在我看来,您的问题不是代码隐藏方法,而是错误属性的使用。 即使您使用 XAML,也不会出现您想要/预期的 UI。
ComboBox Background 属性不是您需要的属性。
只是为了说明第一点: 如果您尝试更改前景而不是背景,它会很好地工作并更改文本前景。
但不幸的是,要更改您的 ComboBox 背景或突出显示,您需要更加努力地工作。 这是一个很好的解释: Change-background-of-WPF-Combobox customizing-wpf-combo-box-style
希望对你有帮助
关于c# - WPF 组合框样式和触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41764322/