【发布时间】:2015-06-15 19:45:30
【问题描述】:
我有一个自定义的 silverlight 控件,它几乎是一个美化的文本框。我有一些属性需要能够从 Silverlight 中的 XAML 进行设置,因此对于每个属性,我都创建了如下内容:
public bool UseCustomTooltips
{
get { return _useCustomTooltips; }
set
{
_useCustomTooltips = value;
DoSomeOtherStuff();
}
}
public static readonly DependencyProperty UseCustomTooltipsProperty = DependencyProperty.Register("UseCustomTooltips",
typeof(bool), typeof(MyControl), new PropertyMetadata(false, PropertyChangedCallback));
在 XAML 中,我可以创建控件并为该属性指定一个值,如下所示:
<Controls:MyControl UseCustomTooltips="True" />
控件的状态是更新,我的回调被击中,一切正常。但是,当我尝试从样式而不是在控件的每个实例中指定该状态时,如下所示:
<Style x:Key="MyControl" TargetType="Controls:MyControl">
<Setter Property="Foreground" Value="Yellow"/>
<Setter Property="UseCustomTooltips" Value="True"/>
</Style>
<Controls:MyControl Style="{StaticResource MyControl}" />
即使继承的属性 Foreground 采用样式中指定的值,我的自定义属性也永远不会被设置并且我的回调永远不会被命中。这导致我假设我的依赖属性的连接方式有问题,但到目前为止我在网上看到的所有内容都告诉我它是正确的。
谁能指出我正确的方向? 谢谢。
【问题讨论】:
标签: c# wpf xaml silverlight