我在从Control继承的自定义控件上有一个依赖项属性(前台)。在加载控件时,在为控件设置值之前,希望查看用户是否设置了依赖项属性,还是使用了其默认值。这个问题比这里要复杂一点:
该控件位于用户添加到其项目中的自定义控件库中。当他们设置项目时,我可以让他们用给定的x:key向他们的app.xaml文件中添加一行,其中包含我在设置控件默认值时读取的设置。但是,如果它们在代码中或在xaml中设置值,则我不希望使用此全局值设置值。这里有几个案例可以帮助我想象一下我在说什么:
加载控件时,我希望读取依赖项属性,以查看它们是否设置了值,或者它是否是在样式中定义的默认值。如果它是默认值,那么我想从app.xaml文件中读取它们的特殊行,并将最前面的位置设置为该颜色。
发布于 2009-08-13 17:20:15
我做了更多的研究,相信我找到了答案。在加载控件(或更新)时,我检查ReadLocalValue(ForegroundProperty)的类型,如果该类型是System.Object,则在xaml中没有设置它。但是,如果这种类型不是System.Object (比如System.Windows.Media.Brush),那么它是在xaml中设置的。
发布于 2009-10-14 16:00:32
从MSDN页面ReadLocalValue扩展您的解决方案以完成
if (ReadLocalValue(FontSizeProperty) == DependencyProperty.UnsetValue)
// Do your thing...
也就是说,存在检查是否设置了值的DependencyProperty.UnsetValue。
https://stackoverflow.com/questions/1273349
复制相似问题