使用自定义控件在 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
片段,真是一件美好的事情。
我有一个自定义的 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
片段,真是一件美好的事情。