使用DropShadowEffect的WPF图像“突出显示”无法绑定颜色

时间:2011-08-26 00:09:23

标签: c# wpf xaml data-binding effects

我创建了一个名为 ImageButton 的UserControl,我在MouseOver上使用DropShadowEffect将按钮显示为“活动”。但是,我似乎无法绑定我的DropShadowEffect的Color属性。任何人都可以建议为什么这不起作用?

XAML

<ControlTemplate x:Key="ActiveEffectTemplate" TargetType="{x:Type Controls:ImageButton}">
    <Image Name="image" Source="{TemplateBinding ImageSource}">
        <Image.Effect>
            <DropShadowEffect 
                Color="{Binding HighlightColour}"
                BlurRadius="20" 
                ShadowDepth="0"
                Opacity="1" 
                Direction="0"/>
        </Image.Effect>
    </Image>
</ControlTemplate>

代码背后;

public static readonly DependencyProperty HighlightColourProperty =
        DependencyProperty.Register("HighlightColour", typeof(Color), typeof(ImageButton));

    public Color HighlightColour
    {
        get { return (Color)GetValue(HighlightColourProperty); }
        set { SetValue(HighlightColourProperty, value); }
    }

2 个答案:

答案 0 :(得分:1)

我相信我通过将以下内容放入我的绑定中解决了这个问题;

RelativeSource={RelativeSource AncestorType={x:Type Controls:ImageButton}} 

答案 1 :(得分:0)

该绑定与DataContext相关,也可能只是TemplateBinding