如何计算 WPF 中缩放变换应用控件的增加的宽度和高度?
问问题
1936 次
2 回答
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;
}
于 2014-07-14T14:57:28.563 回答
1
您可以使用ActualHeight
和ActualWidth
属性。这些返回控件的真实值,而不是您请求的值。虽然这是呈现控件后的值。
如果您想知道高度和宽度是多少,那么您可以将转换应用于请求大小,但这些可能与实际值不匹配。
MSDN有更多信息。
Height 和 Width 与 ActualHeight 和 ActualWidth 的属性是有区别的。例如,ActualHeight 属性是基于其他高度输入和布局系统的计算值。该值由布局系统本身根据实际渲染过程设置,因此可能会稍微落后于作为输入更改基础的属性(例如高度)的设置值。
由于 ActualHeight 是一个计算值,因此您应该知道,由于布局系统的各种操作,可能会对其进行多次或增量报告更改。布局系统可能正在计算子元素所需的度量空间、父元素的约束等。
于 2011-09-08T09:29:04.317 回答