如何在WPF中轻松地将屏幕布局从纵向更改为横向,反之亦然

时间:2013-08-22 12:28:51

标签: wpf layout screen orientation screen-rotation

假设我们设计了一些WPF应用程序的布局,可以在标准的全高清屏幕1920x1080上使用。然后我们需要旋转屏幕并将其安装在一个安装在自助服务终端PC上的盒子中,但是在纵向方向上。

我需要找到一种方法来轻松旋转屏幕,或者至少以更优雅的方式旋转屏幕。

我尝试使用RenderTransform和RotateTransform应用于窗口的内容但这会旋转图像,当然不是布局。

控件保持相同的宽度和高度。

有没有办法自动完成,或者我应该逐个采用每个控件并更改它的属性?

TextBlocks和TextBoxes存在问题。它们旨在水平使用。您可以旋转它,但布局是根据它的水平宽度计算的。

顺便说一句。不允许旋转整个窗口。它抛出异常。

1 个答案:

答案 0 :(得分:1)

看起来我自己找到了解决方案。如果我们选择Layout变换而不是RenderTransform,那么视觉系统会在渲染之前自动排列和测量布局。

WPF框架按此顺序完成工作

LayoutTransform 测量 安排 的RenderTransform 渲染

最好在此处LAYOUTTRANSFORM VS. RENDERTRANSFORM - WHAT'S THE DIFFERENCE?

进行说明