如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值

2024-03-03

我正在创建一个自定义 WPF 控件NOT一个用户控件。此自定义控件有两个属性(UnselectedAppearance 和 SelectedAppearance)。这两个属性具有相同的类型(外观),均派生自 DependencyObject。 Appearance 类本身有几个 DependencyProperties。我想知道为每个外观属性设置默认值的正确方法。我尝试过如下代码,但是当我尝试在设计器中使用自定义控件时,会引发异常。

public static readonly DependencyProperty UnselectedAppearanceProperty = DependencyProperty.Register("UnselectedAppearance", typeof(Appearance), typeof(FNDie), new PropertyMetadata(new Appearance()));

我有什么办法可以做到这一点吗?


依赖属性的默认值在该依赖对象的所有实例之间共享,因此除 null 之外的值通常仅对值类型或不可变类有意义。换句话说,您可能会经历惨痛的教训,null 可能是您最好的选择。

如果您迫切需要为依赖项属性设置可变引用值,则可以将默认值保留为 null 并在构造函数中设置它。但是,您应该意识到,这样做将使该属性无法使用样式进行设置,这可能是一个严重的限制,具体取决于您的需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值 的相关文章

随机推荐

  • 如何将 Bootstrap CDN 添加到我的 WordPress

    我想在我的 Wordpress 中使用 Bootstrap 框架 如何在functions php 中编辑 我找到一个地方告诉这样的代码 function enqueue my scripts wp enqueue script jquer
  • 带有 Spring-boot 后端的 Flutter websocket

    好吧 Flutter 在食谱中有 WebSocket 配方 here https flutter dev docs cookbook networking web sockets 这对于 websocket org 测试服务器非常有效 问题
  • WPF - 更改隐藏代码中的样式

    我有一个显示 TFS 查询结果的列表框 我想更改后面代码中 ListBoxItem 的样式 以使查询结果中包含列 ListBox 项的样式在我的 Windows Resources 部分中定义 我已经尝试过这个 public T GetQu
  • Nginx 不区分大小写 proxy_pass

    我有一个网站叫http example com 正在运行一个可以通过以下位置访问的应用程序http example com app1 app1 位于 nginx 反向代理后面 如下所示 location app1 proxy pass ht
  • BeautifulSoup 返回意外的额外空格

    我正在尝试使用 BeautifulSoup 从 html 文档中获取一些文本 在一个对我来说非常相关的案例中 它产生了一个奇怪而有趣的结果 在某一点之后 汤在文本中充满了额外的空格 空格将每个字母与下一个字母分开 我试图在网络上搜索以找到原
  • 识别何时使用模运算符

    我知道modulus http en wikipedia org wiki Modulo operation 运算符计算除法的余数 如何确定需要使用模运算符的情况 我知道我可以使用模运算符来查看数字是偶数还是奇数 素数还是合数 但仅此而已
  • 使用 Pandas 时明显缺少 dateutil.tz 包?

    我的python 2 7代码如下 import pandas as pd from pandas import DataFrame DF rando DataFrame 1 2 3 然后当我执行时 我收到一个奇怪的错误dateutil tz
  • 如何将通用 JavaScript 对象序列化为 XML

    主流 JavaScript 库 YUI jQuery Dojo 之一是否提供了将 JavaScript 对象序列化为 XML 作为文本 的方法 有no用于本机对象到 XML 序列化的本机 API 然而 有一些 3rd 方库 比如这个 它会输
  • 从外部程序集中动态加载类型

    在托管代码中 假设调用代码没有对该程序集的静态引用 如何在运行时从另一个程序集加载托管类型 为了澄清起见 假设我将 Lib cs 中的类 Lib 编译为 Lib dll 我想在一个名为 Foo dll 的单独程序集中编写一个类 Foo 它没
  • Django:如何从时间帖子中获取时差?

    假设我有一个模型课程 class Post models Model time posted models DateTimeField auto now add True blank True def get time diff self
  • 如何声明和使用 NSString 全局常量[重复]

    这个问题在这里已经有答案了 可能的重复 Objective C 中的常量 https stackoverflow com questions 538996 constants in objective c 我将一些应用程序设置存储在 NSU
  • 缺少授权类型错误

    我只是想学习 OAuth 我写了一些代码来测试它 当我提交请求时我得到 错误 无效请求 error description 缺少授权类型 邮递员的错误 import java util Optional import static org
  • 在 Python 中分割大型 XML 文件

    我希望将一个巨大的 XML 文件分割成更小的部分 我想扫描文件以查找特定标签 然后获取 和 之间的所有信息 然后将其保存到文件中 然后继续浏览文件的其余部分 我的问题是试图找到一种干净的方法来记录标签的开始和结束 以便我可以在使用 for
  • Windows 卷上的 docker-compose 不工作

    过去一周我一直在使用 Docker 认为容器的想法非常有用 但是尽管在过去 3 天里我阅读了所有内容 但我还是无法让卷映射发挥作用 get docker compose to use my existing volume Docker Ve
  • 在 Jenkins CI 中成功构建后打包多个发布配置文件 .pubxml

    我在用着Jenkins https jenkins ci org 用于持续集成 现在我有一份使用这个命令的工作Jenkins在构建步骤的命令行参数中 这是命令 WORKSPACE OEVizion ITVizion OEVizion Web
  • 提取 .zip 存档的最快方法

    提取 zip 档案的最快方法是什么 我的应用程序的性能很大程度上取决于提取 zip 文件的速度 我正在使用 dotNetzip atm 但似乎可以有更多更快的工具 如果有 他们安全吗 我听说 QuickLZ 是最快的 但没有测试过 也没有找
  • Rails Select helper in form required True 不起作用

    我有一个 Rails 3 2 21 应用程序 其中使用select助手的形式如下 这适用于选择选项的基本功能 包括空白选项等 但是不起作用的是 required gt true or the class gt select 即使选择为空并且
  • 如何计算两个 Zend_Date 对象之间的差异(以月为单位)

    我有两个对象Zend Date类 我想计算它们在整个日历月中的差异 我该怎么做
  • 在 Swing GUI 中提供空白

    没有空白的 GUI 显得 拥挤 如何在不显式设置组件位置或大小的情况下提供空白 使用各种LayoutManagers可以在各个组件之间提供间距 1 边框布局 重载构造函数 BorderLayout int水平间隙 int垂直间隙 http
  • 如何设置从 DependencyObject 派生的类型的 DependencyProperty 的默认值

    我正在创建一个自定义 WPF 控件NOT一个用户控件 此自定义控件有两个属性 UnselectedAppearance 和 SelectedAppearance 这两个属性具有相同的类型 外观 均派生自 DependencyObject A