以编程方式在App.xaml上设置绑定

时间:2017-01-20 12:59:07

标签: c# wpf xaml window visualbrush

我想在App.xaml中使用VisualBrush:

<Application.Resources>
    <VisualBrush x:Key="TestBrush1" />
    <VisualBrush x:Key="TestBrush2" />
</Application.Resources>

然后我想在一个窗口中设置一个绑定:

VisualBrush testBrush = (VisualBrush)FindResource("TestBrush1");
Binding testBinding = new Binding();
testBinding.Source = FirstBrowser;
testBrush.Visual = testBinding;

然后我想使用这个Brush将FirstBrowser的内容显示到另一个窗口。但那会晚些。绑定不起作用。有人知道如何让这项工作成功吗?

1 个答案:

答案 0 :(得分:0)

无法修改你在App.xaml中定义的VisualBrush,因为它被运行时自动冻结,因此定义一个没有Visual作为全局资源的VisualBrush是没用的。

您最好在实际需要时创建新画笔。您可以使用BindingOperations.SetBinding方法绑定VisualBrush的Visual属性,如下所示:

VisualBrush testBrush = new VisualBrush();
BindingOperations.SetBinding(testBrush, VisualBrush.VisualProperty, new Binding() { Source = FirstBrowser });