gpt4 book ai didi

wpf - 如何创建自己的 Freezable 类?

转载 作者:行者123 更新时间:2023-12-04 14:22:01 24 4
gpt4 key购买 nike

我试过 MSDN,但没有从 Freezable 派生的例子。

更新:

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

最佳答案

文档

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

For information on using and creating your own Freezable objects, see Freezable Objects Overview.



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

For an example of a custom Freezable class, see the Custom Animation Sample.



例子

由于您特别要求提供一个简单的示例,因此这里有一个(改编自 MSDN page of Freezable.CreateInstanceCore )。记住以下来自 the theory page 的句子:

Every Freezable subclass must override the CreateInstanceCore method. If your class uses dependency properties for all its data, you're finished.



假设我们创建了一个自定义类 MySimpleColor ,它只有一个 bool 属性 IsRed .为了使这个类可以卡住,我们只需要覆盖 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()完全按预期工作。

关于wpf - 如何创建自己的 Freezable 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com