我正在尝试开发一个自定义的三态按钮用户控件,到目前为止,我一直在使用CTF来设置属性。
但我想将此更改为使用带有PropertiesDependencies的WPF属性系统。
不幸的是,我无法使其工作,当我使用DynamicResource从我的xaml(父亲)设置属性时,未设置该值。
<common:StateImageButton x:Name="story_buttonRecord" BackTest="{DynamicResource backTest}" />
以下是我在按钮控制器中的代码:
public ImageSource BackTest
{
get { return (ImageSource)this.GetValue(BackProp); }
set { this.SetValue(WidthProp,value); }
}
public static readonly DependencyProperty BackProp =
DependencyProperty.Register(
"BackTest",
typeof(ImageSource),
typeof(StateImageButton),
new FrameworkPropertyMetadata());
我甚至没有在我的按钮xaml中使用该属性,但它显然甚至没有进入Setter。我一直在网上搜索没有成功。所以也许我错过了什么。
先谢谢你的帮助, 鲍里斯
答案 0 :(得分:1)
此外,WPF不使用提供的setter来设置属性,而是直接执行。
WPF设置属性时调试的方法是在设置属性时添加回调,如下所示。
public static readonly DependencyProperty BackProp =
DependencyProperty.Register(
"BackTest",
typeof(ImageSource),
typeof(StateImageButton),
new FrameworkPropertyMetadata(OnBackChanged));
private static void OnBackChanged(
DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
var sender = (StateImageButton)d; // Put a breakpoint here
}