如何在WPF平台中获得控件的实际宽度和实际高度

问题描述 投票:0回答:1

我正在WPF平台中准备一个自定义控件,在该控件中,我正在使用内容呈现器来显示视图,并且试图使用文本块控件在内容呈现器内容上显示文本。对于文本块中的给定文本,我尝试使用用于放置文本块控件的测量方法来计算文本块的实际宽度和实际高度,但是它没有提供文本块控件的实际宽度和高度。这样文本块控件就不会显示在视图中。下面提供了代码段:this.CustomTextBlock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

[有人可以建议我如何计算WPF平台中控件的实际宽度和实际高度,还可以向我解释为什么测量方法未提供WPF平台中控件的实际宽度和实际高度?

我还附上下面的项目下载链接:[https://www.syncfusion.com/downloads/support/directtrac/general/ze/BViewWpf1629602448][DemoProject]

wpf textblock measure contentpresenter
1个回答
0
投票
UIElement.Measure是由框架的布局引擎执行的方法。Measure在第一次布局遍历期间执行,并实际计算DesiredSize,当调用Arrange时在第二次布局遍历中使用。 Arrange可以使用(取决于实现方式)DesiredSize来安排其子元素。 Measure对实际大小没有直接影响。它仅计算最大可用空间。传递给此方法的大小不是强制性的,因为它可以被测量算法覆盖。该参数被认为是最小可用空间。

如果要修改FrameworkElement的大小,请设置WidthHeight属性。

为了防止TextBlock占据最大的可用水平空间,只需设置HorizontalAlignment

<!-- Use Padding to add additional space --> <TextBlock Text="Minimum sized TextBlock" HorizontalAlignment="Left" />

© www.soinside.com 2019 - 2024. All rights reserved.