XAML - 使用Element绑定到Brush

时间:2016-01-20 04:50:06

标签: wpf xaml ivalueconverter

我想使用绑定为窗口设置Background Brush。问题是我需要访问Resource来执行此操作,这意味着必须在Background之后设置Resources属性。

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

以上代码无效,我无法在线找到任何内容。

如何在Background之后绑定Resources

2 个答案:

答案 0 :(得分:0)

使用DynamicResource

要设置Window背景,请使用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>

答案 1 :(得分:0)

好的,事实证明这一切都是因为转换器传入了"Severity"而不是Severity属性的值。我将属性从Source更改为Path,然后就可以了。

e.g。

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