C#WPF BorderBrush不会设置颜色

时间:2017-02-13 13:43:58

标签: c# wpf border

我有一个不会实际改变边框颜色的边框。这是我的组合框的XAML。有什么想法吗?

<ComboBox IsEditable="True" IsReadOnly="False"
                      Text="{Binding Model.Number}" ItemsSource="{Binding Item}"
                      SelectedItem="{Binding Model.Number}"    
                      VerticalAlignment="Top"
                      BorderBrush="Red"
                      BorderThickness="2">
</ComboBox>

2 个答案:

答案 0 :(得分:2)

您需要修改ControlTemplate的{​​{1}}才能更改其边框颜色。您可以在此处详细了解原因:https://blog.magnusmontin.net/2014/04/30/changing-the-background-colour-of-a-combobox-in-wpf-on-windows-8/

您可以通过在Visual Studio中以设计模式右键单击ComboBox元素将默认模板复制到XAML标记中,然后选择&#34;编辑模板&#34; - &gt;&#34;编辑副本......&#34;然后根据您的要求进行修改。

引用了很多XAML,但是在这里。查找名为&#34; ComboBox.Static.Editable.Border&#34;的资源。并更改此ComboBox属性以更改可编辑Color的边框颜色。别忘了添加对PresentationFramework.Aero2.dll的引用。

ComboBox

还应该提到的是,Windows上的不同版本之间的默认模板不同。以上内容适用于Windows 10。

不,没有办法通过简单地设置属性或做类似的事情来改变边框颜色:)你必须修改模板。

答案 1 :(得分:2)

如果您只想在ComboBox(或任何其他控件)周围显示红色边框,则可以使用Border

<Border    BorderBrush="Red"
            BorderThickness="2">
    <ComboBox IsEditable="True"
                IsReadOnly="False"
                Text="{Binding Model.Number}"
                ItemsSource="{Binding Item}"
                SelectedItem="{Binding Model.Number}"
                VerticalAlignment="Top"></ComboBox>
</Border>