如何计算比例变换应用控件的大小

时间:2011-09-08 09:25:08

标签: wpf size scaletransform

如何计算WPF中缩放变换应用控件的增加宽度和高度?

2 个答案:

答案 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)

您可以使用ActualHeightActualWidth属性。这些返回控件的真实值,而不是您请求的值。虽然这是之后的值,但是渲染了控件。

如果您想知道 的高度和宽度是多少,那么您可以将转换应用于请求大小,但这些可能与实际值不匹配。

MSDN有更多信息。

  

高度和宽度以及ActualHeight和ActualWidth的属性之间存在差异。例如,ActualHeight属性是基于其他高度输入和布局系统的计算值。该值由布局系统本身根据实际渲染过程设置,因此可能略微落后于属性的设置值,例如高度,这是输入更改的基础。

     

因为ActualHeight是一个计算值,所以您应该知道,由于布局系统的各种操作,可能会有多个或增量报告的更改。布局系统可能正在计算子元素所需的度量空间,父元素的约束等等。