我创建了一个名为 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); }
}
答案 0 :(得分:1)
我相信我通过将以下内容放入我的绑定中解决了这个问题;
RelativeSource={RelativeSource AncestorType={x:Type Controls:ImageButton}}
答案 1 :(得分:0)
该绑定与DataContext
相关,也可能只是TemplateBinding
。