我正在创建一个 不是 UserControl 的自定义 WPF 控件。此自定义控件具有两个属性(UnselectedAppearance 和 SelectedAppearance)。这两个属性都是从 DependencyObject 派生的相同类型(外观)。 Appearance 类本身有几个 DependencyProperties。我想知道为每个外观属性设置默认值的正确方法。我试过如下代码,但当我尝试在设计器中使用我的自定义控件时抛出异常。
public static readonly DependencyProperty UnselectedAppearanceProperty = DependencyProperty.Register("UnselectedAppearance", typeof(Appearance), typeof(FNDie), new PropertyMetadata(new Appearance()));
有什么办法可以做到这一点吗?
最佳答案
依赖属性的默认值在该依赖对象的所有实例之间共享,因此 null 以外的值通常只对值类型或不可变类有意义。换句话说,您可能会通过艰难的方式了解到 null 可能是您的最佳选择。
如果您迫切需要为依赖属性设置一个可变引用值,您可以将默认值保留为 null 并在构造函数中设置它。但是,您应该知道,这样做会使该属性无法使用样式进行设置,这可能是一个严重的限制,具体取决于您的需要。
关于wpf - 如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850859/