我正在尝试使用代码在运行时动态更改可编辑的 ComboBox
的背景颜色。特别是,我想更改作为 ComboBox
一部分的可编辑 TextBox
的背景。
SO 上有几个关于这个的答案,比如这个:
WPF change the background color of an edittable combobox in code
但是,问题在于它们都基于 XAML
并编辑默认模板。我不想那样做,我正在寻找一种仅适用于代码的通用解决方案。
这可能吗?我尝试了看起来很明显的解决方案:
TextBox textBox = (TextBox)comboBox.Template.FindName("PART_EditableTextBox", comboBox);
textBox.Background = Brushes.Yellow;
但这绝对没有任何作用。我错过了什么?
最佳答案
你可以这样做
<ComboBox Loaded="MyCombo_OnLoaded" x:Name="myCombo" IsEditable="True"></ComboBox>
private void MyCombo_OnLoaded(object sender, RoutedEventArgs e)
{
var textbox = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo);
if (textbox!= null)
{
var parent = (Border)textbox.Parent;
parent.Background = Brushes.Yellow;
}
}
关于c# - 以编程方式更改 WPF 可编辑组合框的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177619/