颠倒旋转Windows窗体

我有一个C#应用程序,它有一个现有的WinForm,我现在需要颠倒显示。

该应用程序将显示在触摸屏Windows 7设备上。 如果两个人正在使用该设备,则一个人正在正面观看它,而另一个用户将同时正在观看它。 我需要将一个控件正面向上显示,而另一个控件显示为倒置,每个复制forms。 两者都需要function。 标题栏和Windows不必关闭,最大化和最小化旋转。

有没有办法轻松旋转此窗体及其所有内容,而无需从头开始重写?

不幸的是,在WinForms中无法直接进行旋转控件。

至少,如果你希望他们保留他们的function,那就不是了。 将控件绘制到位图,旋转位图,然后将其绘制回窗体上的所需位置会相对简单。 但是你显然会失去与控件交互的能力。 他们只是他们原始自我的静态代表。

但是,实现function颠倒控制并不会发生。 我的意思是,你可以尝试为所有者绘制的控件编写一堆自定义绘图代码,但是你仍然会遇到一堆bug,极端情况和兼容性问题。 WinForms所基于的Win32控件不支持这一点。 没有什么大惊喜,真的,考虑到它们是在大概20 – 25年前发明的,有人想到你可以随身携带并向任何方向旋转的电脑屏幕。 WPF等UI技术在触摸屏和平板电脑出现的时候出现了很好的理由。

在翻转整个屏幕时,有一些可以探索的可能性,但是当你想要不同的控制向不同的方向发展时,这并没有帮助。 (而且我猜它在我说这个时就背叛了我作为桌面应用程序的优势,但这听起来像是一个令人难以置信的令人困惑的用户界面。)

如果你绝对必须拥有这个,其他人将不得不给你另一条路线来破解它,也许是沿着Dhawalk的评论:在WPF应用程序中托管WinForms控件,该应用程序为旋转控件提供内置支持。 我对此不太了解,无法在这条道路上提出任何具体的建议。 从几分钟的搜索开始,似乎WindowsFormsHost实际上并不支持旋转变换,因此无论如何这可能都是非首发。