如何计算WPF中缩放变换应用控件的增加宽度和高度?
答案 0 :(得分:3)
public static Rect GetAbsolutePlacement(this FrameworkElement visual)
{
Point topLeft = visual.PointToScreen(new Point(0, 0));
var bottomRight = visual.PointToScreen(new Point(visual.ActualWidth, visual.ActualHeight));
var bounds = Rect.Empty;
bounds.Union(topLeft);
bounds.Union(bottomRight);
return bounds;
}
答案 1 :(得分:1)
您可以使用ActualHeight
和ActualWidth
属性。这些返回控件的真实值,而不是您请求的值。虽然这是之后的值,但是渲染了控件。
如果您想知道 的高度和宽度是多少,那么您可以将转换应用于请求大小,但这些可能与实际值不匹配。
MSDN有更多信息。
高度和宽度以及ActualHeight和ActualWidth的属性之间存在差异。例如,ActualHeight属性是基于其他高度输入和布局系统的计算值。该值由布局系统本身根据实际渲染过程设置,因此可能略微落后于属性的设置值,例如高度,这是输入更改的基础。
因为ActualHeight是一个计算值,所以您应该知道,由于布局系统的各种操作,可能会有多个或增量报告的更改。布局系统可能正在计算子元素所需的度量空间,父元素的约束等等。