【问题标题】:How to easily change the layout of the screen from Portrait to Landscape and vice versa in WPF如何在 WPF 中轻松地将屏幕布局从纵向更改为横向,反之亦然
【发布时间】:2013-08-22 12:28:50
【问题描述】:

假设我们设计了一些 WPF 应用程序的布局以在标准全高清屏幕 1920x1080 上使用。然后我们需要旋转屏幕并将其安装在安装在 kiosk PC 上但纵向放置的盒子中。

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

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

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

有没有办法自动完成,或者我应该把每个控件一个一个地改变它的属性?

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

顺便说一句。不允许旋转整个窗口。它会引发异常。

【问题讨论】:

  • 视频驱动程序不允许您旋转所有内容?
  • 我正在为客户执行此操作,我们无法通过驱动程序执行此操作。但也许如果我们找到合适的驱动程序,这可能是最后的选择。我现在正在搜索 LayoutTransform 和 RenderTransform 之间的区别,也许这可以帮助我。目前不确定。
  • 所以在 Kiosk 中,其他一切都会横着走?
  • 如果您找到了解决自己问题的方法,请将其发布为该问题的答案,而不是用它来编辑问题。

标签: wpf layout screen orientation screen-rotation


【解决方案1】:

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

WPF 框架按此顺序完成工作

布局变换 措施 安排 渲染变换 渲染

最好在这里描述LAYOUTTRANSFORM VS. RENDERTRANSFORM - WHAT'S THE DIFFERENCE?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 2022-07-07
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多