我在从 Control 继承的自定义控件上有一个依赖属性(前景)。当我加载控件时,我想查看用户是否设置了依赖属性,或者在我为它们设置值之前它是否使用了它的默认值。这个问题有点复杂,这里是:
该控件位于用户添加到其项目中的自定义控件库中。当他们设置他们的项目时,我可以让他们使用给定的 x:key 在他们的 app.xaml 文件中添加一行,其中包含我在为控件设置默认值时读取的设置。但是,如果他们在代码或 xaml 中设置值,我不想使用此全局值设置值。这里有几个案例可以帮助我想象我在说什么:
用户从我的库中创建一个控件并将其放在他们的页面上。然后他们将前景设置为绿色。我希望该控件的前景值是绿色的。
用户在他们的 app.xaml 中添加了一个特殊的行,声明他们希望特定类型的所有控件都具有红色的前景。我希望所有这类控件的前景值都是红色的。
用户在他们的 app.xaml 中添加了一个特殊的行,声明他们希望特定类型的所有控件都具有红色的前景。然后,他们将单个控件(在 xaml 中)的前景值设置为黄色。我希望这种类型的所有控件的前景值都是红色的,除了他们指定为黄色的那个。
加载控件时,我想读取依赖属性以查看它们是否设置了值,或者它是否是样式中定义的默认值。如果它是默认值,我想从 app.xaml 文件中读取他们的特殊行并将前景设置为该颜色。