2016-01-20 85 views
1

我想使用绑定将窗口设置为Background Brush。问题是我需要访问Resource才能做到这一点,这意味着必须在Resources之后设置Background属性。XAML - 使用元素绑定到画笔

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="../../Resources/Global.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
<Window.Style> 
    <StaticResource ResourceKey="Style.Dialog" /> 
</Window.Style> 
<Window.Background> 
    <Binding Source="Severity" Converter="{StaticResource Converter.SeverityTypeToColor}" /> 
</Window.Background> 

上面的代码不起作用,我在网上找不到任何东西。

如何在Resources之后绑定Background

+0

好吧,事实证明,所有这些都是因为转换器正在传递“Severity”而不是Severity属性的值。我将属性从源更改为路径,它工作。 –

回答

0

使用DynamicResource

要设置窗口的背景,与DynamicResource结合引用ColorBrush。对以下内容进行快速测试,效果很好。确保绑定到背景实际上是一个ColorBrush而不是一个Color。

<Window 
     .... skipping namespace and other references ... 

    Title="MainWindow" 
    Background="{DynamicResource MyBackgroundBrush}" > 

    <Window.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="Resources.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 

     </ResourceDictionary> 
    </Window.Resources> 
    <!-- rest of the xaml --> 
</Window> 
+0

这不是回答我的问题。我有一个绑定不是一个资源,我需要参考获取背景(并且你不能动态资源转换器)。 –

0

行,所以事实证明,这一切都是因为转换器是越来越"Severity"而不是用Severity属性的值传递。我将属性从Source更改为Path,它工作。

例如

<Binding Path="Severity" Converter="{StaticResource Converter.SeverityTypeToColor}" />