Свойство BorderBrush просто определяет цвет границы, чтобы задать толщину, вам необходимо установить свойство BorderThickness.
Лучшим способом сделать это было бы вместо этого установить свойство Style в конвертере. Таким образом, вы можете использовать один конвертер для установки кисти границы, толщины и любых других свойств, которые вы, возможно, захотите изменить, таких как цвет шрифта. и т.д.
Если вы определяете свой стиль в словаре ресурсов xaml, вы можете загрузить его из конвертера следующим образом ...
public class TextboxStyleConverter : IValueConverter
{
public object Convert(
object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if(some condition is true)
return (Style)Application.Current.FindResource("MyStyle1");
else
return (Style)Application.Current.FindResource("MyStyle2");
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Таким образом, вы можете просто определить нужные стили и загрузить подходящий из вашего класса конвертера.
Лучший способ определить свой стиль - использовать Resource Dictionary - это всего лишь файл xaml в вашем решении. Ниже приведен пример ...
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type TextBlock}" x:Key="Style1">
<Setter Property="BorderBrush" Value="DarkGrey" />
<Setter Property="BorderThickness" Value="1" />
</Style>
<Style TargetType="{x:Type TextBlock}" x:Key="Style2">
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="BorderThickness" Value="2" />
</Style>
</ResourceDictionary>
Если вы хотите сохранить свой ResourceDictionary в отдельном файле, чтобы на него можно было легко ссылаться несколькими Windows / UserControls, вам нужно включить его в свои Window.Resources / UserControl.Resources в каждом файле xaml, где он должен находиться используемый. Если вы включаете несколько ресурсов, вам нужно использовать тег (см. Ниже), в противном случае просто пропустите эту часть и включите свой ResourceDictionary самостоятельно в тегах.
<Window>
<Window.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../ResourceDictionary1.xaml" />
<ResourceDictionary Source="../ResourceDictionary2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>