gpt4 book ai didi

user-controls - 银光2.0 : Determine if a dependency property is set before changing it

转载 作者:行者123 更新时间:2023-12-02 09:00:57 31 4
gpt4 key购买 nike

我在继承自 Control 的自定义控件上有一个依赖属性(Foreground)。当我加载控件时,我想在设置值之前查看用户是否已设置依赖属性,或者它是否正在使用其默认值。问题有点复杂,如下:

该控件位于用户添加到其项目中的自定义控件库中。当他们设置项目时,我可以让他们使用给定的 x:key 在 app.xaml 文件中添加一行,其中包含我在设置控件的默认值时读取的设置。但是,如果他们在代码或 xaml 中设置值,我不想使用此全局值设置该值。以下是一些案例,可以帮助您直观地了解我所讨论的内容:

  1. 用户从我的库中创建一个控件并将其放在他们的页面上。然后他们将前景设置为绿色。我希望该控件的前景值为绿色。

  2. 用户在其 app.xaml 中添加了一条特殊行,表示他们希望特定类型的所有控件都具有红色前景。我希望所有此类控件的前景值为红色。

  3. 用户在其 app.xaml 中添加了一条特殊行,表示他们希望特定类型的所有控件都具有红色前景。然后,他们将单个控件(在 xaml 中)的前景值设置为黄色。我希望所有此类控件的前景值都为红色,但它们指定为黄色的控件除外。

加载控件时,我想读取依赖属性以查看它们是否已设置该值,或者它是否是样式中定义的默认值。如果它是默认值,我想从 app.xaml 文件中读取它们的特殊行并将前景设置为该颜色。

最佳答案

扩展您的解决方案以完成,从 MSDN page ReadLocalValue :

if (ReadLocalValue(FontSizeProperty) == DependencyProperty.UnsetValue)
// Do your thing...

也就是说,存在 DependencyProperty.UnsetValue 来检查该值是否已设置。

关于user-controls - 银光2.0 : Determine if a dependency property is set before changing it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273349/

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