4

我是 WPF 新手,但仍有一些基本问题。

我有一个来自 devcomponents 的控件,默认为蓝色边框。我的文本框等具有更灰色的颜色。我希望 devcomponents 控件具有相同的边框。

我查看了 TextBox 的属性,发现 BorderBrush 设置为“System.Windows.Media.LinearGradientBrush”但我不能放 -

<WpfEditors:IntegerInput BorderBrush="System.Windows.Media.LinearGradientBrush"...

事实上,我不能放——

<TextBox BorderBrush="System.Windows.Media.LinearGradientBrush" ...

我错过了什么魔法?

谢谢。

4

1 回答 1

12

您必须为该属性BorderBrush分配一个 Brush(正如您可以通过其名称猜测的那样)。

一种BrushLinearGradientBrush(在颜色之间产生渐变的东西) SolidColorBrush是另一种也可以分配的画笔。

看起来您使用的这种控件已经分配了一个LinearGradientBrush. 现在您可以指定您选择的 Brush 并覆盖已设置的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>

或者只使用现有的转换器颜色 -->SolidColorBrush

<TextBox BorderBrush="Red" Text="bla bla" />

编辑:

如果您希望所有控件都具有相同的边框,您可以将 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" />
于 2011-09-16T15:38:32.500 回答