我是WPF的新手,但仍有一些基本问题。
我有一个来自devcomponents的控件,默认为蓝色边框。我的文本框等具有更灰色的颜色。我希望devcomponents控件具有相同的边框。
我查看TextBox的属性,看看BorderBrush设置为“System.Windows.Media.LinearGradientBrush”但我不能放 -
<WpfEditors:IntegerInput BorderBrush="System.Windows.Media.LinearGradientBrush"...
事实上,我不能把 -
<TextBox BorderBrush="System.Windows.Media.LinearGradientBrush" ...
我错过了什么魔法?
感谢。
答案 0 :(得分:11)
对于属性BorderBrush
,您必须指定一个画笔(正如您可以通过其名称猜测的那样)。
一种Brush
是LinearGradientBrush
(在颜色之间产生渐变的东西)
SolidColorBrush
是另一种也可以分配的画笔。
因为它看起来像您使用的这种控件已经分配了LinearGradientBrush
。
现在,您可以指定一个您选择的画笔并覆盖已设置的Brush
。
LinearGradientBrush
:
<TextBox>
<TextBox.BorderBrush>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="Black" Offset="0.0" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
如果您希望边框只是纯色,您还可以使用SolidColorBrush
。
<TextBox.BorderBrush>
<SolidColorBrush Color="Red" />
</TextBox.BorderBrush>
或只使用现有的转换器颜色 - &gt; SolidColorBrush
<TextBox BorderBrush="Red" Text="bla bla" />
编辑:
如果您希望所有控件都具有相同的Border,您可以将Brush添加到容器对象的ResourceDictionary
并将其重用于所有控件......
<!-- Add the Brush as resource to the surrounding window -->
<Window.Resources>
<SolidColorBrush x:Key="controlBorderBrush" Color="Gray" />
</Window.Resources>
<!-- -->
<TextBlock BorderBrush="{StaticResource controlBorderBrush}" Text="huhuuu" />
<otherlib:SpecialTextBlockWithOverriddenProps BorderBrush="{StaticResource controlBorderBrush}" Text="hahaaaaaaa" />