是否可以将WPF边框的BorderBrush绑定到ViewModel类中的变量?

时间:2018-04-21 19:30:37

标签: c# wpf border

开始编写我的自定义WPF窗口,我想在VM类中加入ResizeThickness以及所有这些内容的颜色,以便在设置中编辑颜色方案。

这两项工作都是:

... BorderBrush = "Red" >
... BorderBrush = "{StaticResource [SolidColorBrush from xaml dict]}" >

但是... BorderBrush = "{Binding [SolidColorBrush from VM class]" >绝对没有。

显然,DataContext在窗口构造函数的代码中被设置为所述VM类。

我的第二个最好的想法就是编辑xaml并要求重启。

2 个答案:

答案 0 :(得分:1)

在viewmodel中定义画笔,如下所示:

public System.Windows.Media.Brush MyBrush { get; set; }

...然后像这样使用它:

BorderBrush="{Binding MyBrush}"

答案 1 :(得分:0)

您可以将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="xyz" />