2017-01-20 2 views
1

Я хочу использовать VisualBrush в App.xaml:набор Связывание над App.xaml программным

<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; 

А потом Я хочу использовать эту кисть, чтобы показать содержимое FirstBrowser в другое окно. Но это произойдет позже. Связывание не работает таким образом. У кого-то есть идея, как я могу сделать эту работу?

ответ

0

не может изменить VisualBrush, который вы определили в App.xaml, поскольку он автоматически замораживается средой выполнения, поэтому определение VisualBrush без визуального представления в качестве глобального ресурса бесполезно.

Лучше создать новую кисть, когда она вам действительно нужна. Вы можете связать Визуальная свойство визуала с использованием метода BindingOperations.SetBinding так:

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

Но тогда я должен был бы назвать эту кисть из одного окна в другое. Является ли это правдоподобным, и когда да, как работает ... хорошо, я думаю, что я должен его протестировать. –

Смежные вопросы