我已经尝试过MSDN,但没有从Freezable派生的示例。

更新:

是的,在MSDN中,有一个动画示例,但是它太复杂了。
需要更简单的东西来理解可卡住的。

最佳答案

文献资料

MSDN documentation of the Freezable class备注部分中,您可以找到以下段落:



该概述包含创建自己的可卡住类部分,其中包含您想做的事情的理论背景。要查找示例,请点击该部分底部的链接:



例子

因为您专门要求一个简单的示例,所以这里是一个示例(改自MSDN page of Freezable.CreateInstanceCore)。记住the theory page的以下句子:



假设我们制作了一个自定义类MySimpleColor,该类具有一个 bool 属性IsRed。要使此类Freezable,我们只需要重写CreateInstanceCore即可:

public class MySimpleColor : Freezable
{
    // Here are your properties
    public static readonly DependencyProperty IsRedProperty =
        DependencyProperty.Register("IsRed", typeof(Boolean), typeof(MySimpleColor));

    // CLR accessor of your property
    public bool IsRed {
        get { return (bool)GetValue(IsRedProperty); }
        set { SetValue(IsRedProperty, value); }
    }

    // All that's needed to make this Freezable
    protected override Freezable CreateInstanceCore() {
        return new MySimpleColor();
    }
}

就是这样。从Freezable继承的代码可确保Freezable方法(例如Freeze()Clone())完全按预期工作。

10-06 05:21