我想开发一个定制的三态按钮的用户控制和到目前为止,我一直在使用CTF设置属性。点击 但我想这是使用WPF属性系统PropertiesDependencies改变。搜索结果 不幸的是我不管理,使其工作,当我从使用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的财产还,但它显然不会在二传手甚至进入。我一直在网上搜索了很多没有成功。所以,也许我失去了一些东西。

在此先感谢您的帮助, 鲍里斯

有帮助吗?

解决方案

此外,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
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top