我是WPF的新手,仍然遇到一些基本问题。
我有一个来自devcomponents的控件,默认为蓝色边框。我的文本框等具有更多的灰色。我希望devcomponents控件具有相同的边框。
我查看了TextBox的属性,看到BorderBrush设置为“ System.Windows.Media.LinearGradientBrush”,但我不能放-
<WpfEditors:IntegerInput BorderBrush="System.Windows.Media.LinearGradientBrush"...
实际上,我不能放-
<TextBox BorderBrush="System.Windows.Media.LinearGradientBrush" ...
我想念什么魔术?
谢谢。
最佳答案
必须为属性BorderBrush
分配一个Brush(可以通过其名称进行猜测)。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>
或仅使用现有的Converter Color->
SolidColorBrush
<TextBox BorderBrush="Red" Text="bla bla" />
编辑:
而且,如果您希望所有控件都具有相同的边框,则可以向容器对象的
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" />