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



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

谁能向我建议如何计算 WPF 平台中控件的实际宽度和实际高度,并向我解释为什么测量方法没有提供 WPF 平台中控件的实际宽度和实际高度?

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

UIElement.Measure

是由框架的布局引擎执行的方法。
Measure在第一次布局传递期间执行,并实际计算DesiredSize,当调用Arrange时,第二个布局传递中使用。Arrange可以使用(取决于实现(DesiredSize来排列其子元素。Measure对实际大小没有直接影响。它只计算最大可用空间。传递给此方法的大小不是强制性的,因为它可以被测量算法覆盖。该参数被视为最小可用空间。

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

要防止TextBlock占用最大可用水平空间,只需将HorizontalAlignment设置为默认值以外的值HorizontalAlignment.Stretch

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

最新更新