Установка пограничной кисти для LinearGradientBrush в WPF

Я новичок в WPF и все еще имею некоторые основные проблемы.

У меня есть контроль от devcomponents, который по умолчанию имеет синюю рамку. Мои текстовые поля и т.д. имеют более серый цвет. Я хочу, чтобы элемент управления devcomponents имел ту же границу.

Я смотрю в свойствах TextBox и вижу, что BorderBrush установлен на "System.Windows.Media.LinearGradientBrush", но я не могу поставить -

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

На самом деле, я не могу поставить -

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

Какую магию мне не хватает?

Благодарю.

1 ответ

Решение

К собственности 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>

или просто используйте существующий 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" />
Другие вопросы по тегам