我正在使用WPF .NET 4.5.1。我在画布上添加了几个边框。在后面的代码中,我应用了一个RenderTransform来将它们全部缩放一定量:
foreach (FrameworkElement child in OverlayCanvas.Children)
{
child.RenderTransform = new ScaleTransform(XScale, YScale, 0, child.Height/2);
}
在其他地方,我尝试使用边框的ActualWidth和ActualHeight,但它们不会被XScale和YScale值缩放。我也尝试过使用LayoutTransform,但这也没有用。
每当我想使用它时,我是否需要让自己不得不将比例应用于ActualHeight和ActualWidth?或者有更简单的方法吗?
更新:
我确实找到了一种使用FrameworkElement扩展方法的方法:GetBounds()。
我不确定它何时被添加到.NET框架中,但在这种情况下确实很有用。它给出了确切的高度和宽度,以及我的控件相对于其他控件的位置,如变换后计算的那样。
如果有人有任何建议,我仍然希望听到更好的方法。