1

我正在使用 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 框架中,但在这种情况下它确实很有帮助。它给了我确切的高度和宽度,以及我的控件相对于其他控件的位置,这是在转换后计算的。

如果有人有任何建议,我仍然希望听到更好的方法来做到这一点。

4

0 回答 0