gpt4 book ai didi

WPF 控件默认大小

转载 作者:行者123 更新时间:2023-12-04 16:47:22 24 4
gpt4 key购买 nike

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

最佳答案

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

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

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

编辑:要查询任何 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)

关于WPF 控件默认大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773541/

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