1

我想在 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 的内容显示到另一个窗口。但这会在以后发生。绑定不能以这种方式工作。有人知道我该如何完成这项工作吗?

4

1 回答 1

0

不能修改在 App.xaml 中定义的 VisualBrush,因为它会被运行时自动冻结,因此将没有 Visual 的 VisualBrush 定义为全局资源是没有用的。

当你真正需要它时,你最好创建一个新画笔。BindingOperations.SetBinding您可以使用如下方法绑定 VisualBrush 的 Visual 属性:

VisualBrush testBrush = new VisualBrush();
BindingOperations.SetBinding(testBrush, VisualBrush.VisualProperty, new Binding() { Source = FirstBrowser });
于 2017-01-20T15:27:51.663 回答