WPF控件默认大小

2024-06-18

为 wpf 应用程序定义自定义资源主题时,我可以设置宽度/高度等...如何找到这些属性的默认值(即框架中提供的控件中使用的值)?


WPF 控件通常不包含任何类型的默认大小。 WPF 的主要功能点之一是,除非您指定大小,否则所有内容都会动态调整大小。

如果您确实想要测量控件在给定无限空间的情况下希望拥有的空间量,您可以创建它,使用 +infinity、+infinity 的大小对其调用 Measure,然后检查 DesiredSize。对于大多数控件,这将为您提供控件所需的最小尺寸。如果您在“测量”中给出固定大小,则某些控件将返回它们在调整其容器大小时需要的所有空间(例如,网格、文本框、按钮...)。有些控件的大小仅适合其内容,因此它们会告诉您它们不需要空间(例如 StackPanel)。

因此,您必须问自己,为什么您会在 WPF 中考虑默认大小的概念,因为几乎所有控件的设计都是根据其内容调整大小或根据其容器调整大小,具体取决于它们的设置方式。您想要测量的主要内容是文本,您可以使用上面的技巧来测量 TextBlock 或图像等项目。

Edit:要查询任何 DependencyProperty 的默认值,请使用该属性的元数据:

double defaultWidth = double.NaN;
PropertyMetadata widthMeta = TextBlock.WidthProperty.DefaultMetadata;
if (widthMeta != null && widthMeta.DefaultValue is double)
    defaultWidth = widthDefault.DefaultValue;

要将 DependencyProperty 重置为其默认值,请调用 DependencyObject 的 ClearValue:

MyTextBlock.ClearValue(TextBlock.WidthProperty);

要检查本地设置值:

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

WPF控件默认大小 的相关文章

  • 将两个垂直滚动条相互绑定

    我在控件中有两个 TextBox 并且它们都有两个 VerticalScrollBar 我想在它们之间绑定 VerticalScrollBars 如果一个向上 第二个也会向上等等 如果可以的话我该怎么做 Thanks 不是真正的绑定 但它有
  • WPF 和 Silverlight 应用程序有什么区别?

    WPF 和 Silverlight 应用程序有什么区别 它们是一样的吗 WPF 基于桌面 CLR 即fullCLR 的版本 Silverlight 基于更小 更紧凑的 CLR 它提供了出色的体验 但不具备 CLR 的全部功能 它还有一个小得
  • 如何以编程方式将焦点设置到已获得焦点的 WPF ListBox 中的 SelectedItem?

    我们想要设置SelectedItem of a ListBox以编程方式并希望该项目获得焦点 以便箭头键相对于该选定项目起作用 看起来很简单 然而问题是如果ListBox设置时已经有键盘焦点SelectedItem以编程方式 虽然它确实正确
  • 时间:2019-03-17 标签:c#datagridsqlpopulation

    我正在使用一个小型应用程序 用户可以在其中从 SQL 检索特定数据并用数据填充数据网格 用户可以从 SQL 数据库检索数据 在文本框中写入条形码 然后就会出现他搜索的数据 到目前为止我使用了这段代码 try if e Key Key Ent
  • C# 中包含表的消息框

    IEnumerable
  • WPF C# 获取TreeView的根节点

    我有一个通过 HierarchicalDataTemplate 绑定的 TreeView
  • 接收事件时闪烁选项卡标题

    我有一个基于选项卡的聊天应用程序 用户可以在不同的选项卡项目中与几个人聊天 我想通过闪烁选项卡标题来通知用户传入消息 以防用户正在与接收消息的选项卡以外的其他用户聊天 我如何在 WPF 中实现这一目标 一些例子将非常有用 此致 莫尔泰萨 您
  • 如何动态更改 WPF 中 DataGridTextColumn 绑定上的转换器?

    我真的不明白 WPF 和 XAML 并且继承了一些写得很糟糕的代码 所以我可能会扼杀它 但这里是 我继承了一个绑定到 Person 对象列表 在代码后面 的 DataGrid 其中必要的 DataGridTextColumn 在 XAML
  • 将 winform 树视图转换为 wpf 树视图

    我已经构建了一个在 winforms 中生成树视图的函数 它包括具有递归的子文件夹和文件 现在我想将其转换为 wpf 我不知道如何处理课程 我知道我必须制作自己的自定义类 treenode 它有一个属性 parent 类似于 winform
  • 指定 Xaml 中开始标记和结束标记之间的属性

    考虑以下 Xaml
  • 是否有其他方法可以在 C# 中使用 WPF 处理 DICOM 图像而无需任何第三方/库?

    我开始从事一个充满挑战的新项目 我正在从事一个医疗项目 我必须读取 DICOM 图像并利用其属性处理图像 我收集了一些关于 DICOM 和 PACS 的基本知识 由于我在 WPF 上工作了大约 2 年的职业生涯 因此我选择使用 C 和 WP
  • 将 RenderTargetBitmap 转换为 System.Drawing.Image

    我有 3D WPF 视觉对象 我想将其传递到 Excel 单元格 通过剪贴板缓冲区 对于 普通 BMP 图像 它可以工作 但我不知道如何转换RenderTargetBitmap 我的代码如下所示 System Windows Media I
  • 从 WPF 窗口中删除图标

    我可以使用 WinApi 从 WPF 窗口中删除窗口图标 但是当我仅运行 WPF 项目的可执行文件时 我会在应用程序窗口中再次获得该图标 如何删除该图标 From WPF教程 http www wpftutorial net RemoveI
  • 列表框未虚拟化

    我有一个未虚拟化的列表框 我显然错过了一些东西 但找不到它 它实际上是一个列表框内的一个列表框 外部列表框有一个 ItemTemplate 其中包含一个 Expander Expander 用于显示一组项目 Expander 的内容是显示项
  • 获取我“单击”/“mousedown”的元素的名称

    我有一个页面 其根元素是一个名为的网格Root 我有很多控件 比如TextBlock TextBox Grid Rectangle Border等等 谁是孩子Root 现在 我想要一个MouseDown or PreviewMouseDow
  • XAML中无限旋转矩形

    如何定义XAML无限旋转矩形 到目前为止 我找到了一个带有代码但没有 xaml 的解决方案 http www codeproject com Articles 23257 Beginner s WPF Animation Tutorial
  • wpf 按钮悬停渐变不起作用

    我在 wpf 中使用带有渐变背景的按钮 但鼠标悬停时背景不起作用 我的代码有什么问题吗
  • 如何重新启动 WPF 应用程序?

    如何从代码重新启动 WPF 应用程序 在 Windows 窗体中存在 Application Restart 但出于某种原因 Microsoft 决定不在 WPF 中添加此方法 我讨厌 WPF 和 Windows 窗体之间的不兼容 喜欢 w
  • CanExecute 何时被调用?

    在演示中 我有一个按钮可以切换布尔字段isAsking 我创建了一个命令 该命令仅在以下情况下执行isAsking true 一旦我按下切换按钮 okButton IsEnable立即更改 这表明该命令发现了更改isAsking 我感到很困
  • 获取上下文菜单的控制

    我有一个如下所示的上下文菜单 A 1 2 3 选择 1 2 或 3 后 我需要访问调用上下文菜单的对象 意思是如果这是 textbox1 的上下文菜单 那么我需要访问该对象 我该怎么做 忘了说了 这是一个WPF应用程序 所以我使用 Syst

随机推荐

  • 最好的 php DOM 2 数组函数是什么?

    我想解析xml文件 到目前为止 我发现最好的方法是使用 DOMDocument 类 示例 xml 字符串
  • 语法错误:意外的静态标记

    我目前正在尝试评估与 React 配合使用的不同测试框架 结果发现 Jest 就在我的列表中 但是 我尝试使用此处概述的静态属性 https github com jeffmo es class fields and static prop
  • Android模拟器收不到推送通知

    我在谷歌云上使用推送通知 但是由于某种原因我无法在模拟器上接收推送通知 然而 当我在真实设备上测试时 同一个应用程序确实会收到通知 有其他人遇到过这个问题或找到解决方案吗 模拟设备具有网络访问权限 并且与真实设备具有相同的 Android
  • 我可以使用 CSS 或脚本设置禁用控件的样式吗?

    我有一个 HTMLdiv页面上的元素在以下情况下更新select页面上的元素发生变化 有时 input需要根据选择禁用标签 文本框 问题是 项目涉众喜欢该功能 他们只是认为在 禁用 状态下 文本框内容太浅 因此不可读 我可以将 CSS 应用
  • R:如何应用输出多列数据帧的函数(使用 dplyr)?

    我想查找数据框中某一特定列与所有其他列之间的相关性 p 值和 95 CI broom 包提供了一个示例 说明如何使用带有 dplyr 和管道的 cor test 在两列之间执行此操作 对于 mtcars 和 mpg 列 我们可以与另一列进行
  • PHP 电子邮件表单每次刷新页面时都会发送电子邮件

    我的 php 电子邮件每次刷新页面时都会发送电子邮件 例如 用户正在填写表单并使用发送按钮发送 这一切都很好 但如果他们刷新页面 它会再次发送包含所有相同表单信息的电子邮件 我相信这是问题代码 但不知道它是什么 require once c
  • 如何在 javascript 中实现映射或排序集

    Javascript 有使用数字索引的数组 john Bob Joe 以及可以像关联数组或 映射 一样使用的对象 允许对象值使用字符串键 john 28 bob 34 joe 4 在 PHP 中 两者都很容易A 按值排序 同时保留密钥 和B
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • Firebase Storage - 如何授权文件下载?

    使用 Firebase Storage 时 您可以设置安全规则来授权获取文件的 url 例如使用getDownloadURL 但是 一旦用户拥有该 URL 什么才能阻止黑客众包该 URL 我知道在Google Cloud Storage中
  • Anchor Cycler / 下拉菜单定期导入学校班级数据

    SO 我最近一直在研究一些 html javascript css 为我的学生创建一个在线表格来查看详细信息 分数和各种信息 但我遇到了困难 不确定如何做我正在尝试的事情去做 我将所有这些内容发布在一个线程中的原因是因为我认为其中几个可能会
  • Kubernetes - 一个 Ingress 中的多个配置

    我在同一个 Kubernetes 集群中运行不同的应用程序 我希望多个域能够访问我的 Kubernetes 集群 并根据域进行重定向 对于每个域 我想要不同的注释 配置 如果没有注释 我的入口部署如下 apiVersion networki
  • JDBC中的DriverManager概念是基于provider设计模式的吗

    在 JDBC 中我们使用 Class forName com microsoft sqlserver jdbc SQLServerDriver newInstance 方法将对象加载到内存中 然后 当我们使用 DriverManager 类
  • 如何在运行时更改android应用程序名称和图标?

    安装 Android 应用程序后 当您按下应用程序中的按钮时 是否可以动态更改应用程序图标和名称 在运行时 这是到目前为止的代码 getPackageManager setComponentEnabledSetting new Compon
  • 删除或更新 HDF5 中的数据集?

    我想以编程方式更改与 HDF5 文件中的数据集关联的数据 我似乎找不到一种方法来按名称删除数据集 允许我使用修改后的数据再次添加它 或按名称更新数据集 我正在使用 HDF5 1 6 x 的 C API 但指向任何 HDF5 API 的指针都
  • 有没有办法让 DefaultModelBinder 在绑定到 List 时忽略空项

    我有一个场景 我想更改 DefaultModelBinder 绑定到枚举列表的方式的行为 我有一个枚举 public enum MyEnum FirstVal SecondVal ThirdVal 和一个模型类 public class M
  • 在线找到具有两个不同参数的多个匹配绑定

    我在同一个功能文件中写了两行 何时 When user action1 key1 with value1 for atttributeType Value in Filename1 SectionId1 Then abc When user
  • Newtonsoft.Json.JsonReaderException

    我的 Newtonsoft Json 有问题 我正在尝试从 URL 解析 JSON 但收到错误 这是 JSON ID 0 Nome we Data 2013 09 16 Orario 00 00 16 Prestazione dfg Sta
  • Kotlin 中使用 Retrofit @PartMap 的多部分请求错误 (Android)

    如果我在 Java 中使用这段代码 那么它工作得很好 当我在 kotlin 中转换该代码时 出现错误 Logcat 08 20 23 46 51 003 3782 3782 com qkangaroo app W System err ja
  • 我何时以及为什么要使用 ARC 将局部变量声明为 __weak?

    Mike Ash 撰写了 ARC 简介 http www mikeash com pyblog friday qa 2011 09 30 automatic reference counting html他在那里介绍了这样的内容 weak
  • WPF控件默认大小

    为 wpf 应用程序定义自定义资源主题时 我可以设置宽度 高度等 如何找到这些属性的默认值 即框架中提供的控件中使用的值 WPF 控件通常不包含任何类型的默认大小 WPF 的主要功能点之一是 除非您指定大小 否则所有内容都会动态调整大小 如