使用自定义控件在 silverlight 中设置样式与内联 属性

Style vs inline property setting in silverlight with a custom control

我有一个自定义的 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}" />

我的自定义属性从未设置,我的回调也从未被触发,即使继承的 属性 前景采用样式中指定的值。这让我假设我的依赖项 属性 的连接方式有问题,但到目前为止我在网上看到的一切都告诉我我是正确的。

谁能指出我正确的方向? 谢谢

这不是注册依赖项的正确方法 属性。

    public bool UseCustomTooltips
    {
        get { return (bool)GetValue(UseCustomTooltipsProperty); }
        set { SetValue(UseCustomTooltipsProperty, value); }
    }

    public static readonly DependencyProperty UseCustomTooltipsProperty =
        DependencyProperty.Register("UseCustomTooltips", 
        typeof(bool),
        typeof(MyControl), 
        new PropertyMetadata(false, new PropertyChangedCallback(MyCallbackMethod)));

使用propdp片段,真是一件美好的事情。