2016-01-20 69 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}" />