我有一个窗口(主窗口)的wpf项目。根据配置文件,它显示两个用户控件之一的内容。它可能是一个水平(1920 x1080)控制或垂直(1080 x1920)控制。它的水平屏幕很好,但当垂直加载我想做:1)将窗口/控件旋转270度2)更改主屏幕方向我宁愿只是旋转应用程序,不与windows API交互。我不能手动更改方向,因为我只能远程访问这台计算机。
js81xvg61#
您不能旋转Window对象本身,因为它是由Windows中内置的窗口管理系统定位的。但是,您可以变换(从而旋转)窗口内的任何FrameworkElement。这包括但不限于Grid、Button和TextBox元素。你所需要做的就是编辑你想要旋转的元素的LayoutTransform属性,这个元素很可能是你窗口中的根元素,将旋转Angular 设置为270/-90度,WPF会自动旋转你的UI。由于您使用的是LayoutTransform属性,布局系统也将正确缩放UI。RenderTransform属性使控件首先呈现,然后旋转。
Grid
Button
TextBox
LayoutTransform
RenderTransform
bqf10yzr2#
是,我们可以使用DEVMODE & using System.Runtime.InteropServices;更改屏幕方向现在回复有点晚了,但我正在为新的版本重播,如果有人在C#或VB中更改屏幕旋转的话。请使用下面给出的链接来获得帮助汉内斯先生完全写一篇文章来改变屏幕旋转,幸运的是,它的工作对我来说很好(Windows 11),因为现在...https://www.codeguru.com/dotnet/creating-a-screen-rotator-in-net/
DEVMODE & using System.Runtime.InteropServices;
2条答案
按热度按时间js81xvg61#
您不能旋转Window对象本身,因为它是由Windows中内置的窗口管理系统定位的。但是,您可以变换(从而旋转)窗口内的任何FrameworkElement。这包括但不限于
Grid
、Button
和TextBox
元素。你所需要做的就是编辑你想要旋转的元素的
LayoutTransform
属性,这个元素很可能是你窗口中的根元素,将旋转Angular 设置为270/-90度,WPF会自动旋转你的UI。由于您使用的是
LayoutTransform
属性,布局系统也将正确缩放UI。RenderTransform
属性使控件首先呈现,然后旋转。bqf10yzr2#
是,我们可以使用
DEVMODE & using System.Runtime.InteropServices;
更改屏幕方向现在回复有点晚了,但我正在为新的版本重播,如果有人在C#或VB中更改屏幕旋转的话。
请使用下面给出的链接来获得帮助汉内斯先生完全写一篇文章来改变屏幕旋转,幸运的是,它的工作对我来说很好(Windows 11),因为现在...
https://www.codeguru.com/dotnet/creating-a-screen-rotator-in-net/