Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何旋转表单的内容?_C#_Winforms_.net 2.0 - Fatal编程技术网

C# 如何旋转表单的内容?

C# 如何旋转表单的内容?,c#,winforms,.net-2.0,C#,Winforms,.net 2.0,我想旋转表单的内容(WinForms)。有可能以某种方式实现这种行为吗 我已经知道使用WPF会更容易,但是表单和逻辑已经实现了,此外,我应该使用Framework 2.0 我也知道使用视频卡功能可能是可行的,但我只需要旋转一个特定的表单,而不是目标pc上运行的所有应用程序。如果您自己使用OnPaint绘制内容,您可以使用Graphics.Transform并向其提供旋转矩阵,或者使用Graphics.RotateTransform(浮动角度) 请注意,这并不是完美的。有些东西可能无法按预期旋转,

我想旋转表单的内容(WinForms)。有可能以某种方式实现这种行为吗

我已经知道使用WPF会更容易,但是表单和逻辑已经实现了,此外,我应该使用Framework 2.0


我也知道使用视频卡功能可能是可行的,但我只需要旋转一个特定的表单,而不是目标pc上运行的所有应用程序。

如果您自己使用
OnPaint
绘制内容,您可以使用
Graphics.Transform
并向其提供旋转矩阵,或者使用
Graphics.RotateTransform(浮动角度)


请注意,这并不是完美的。有些东西可能无法按预期旋转,例如文本和图像。

基本上,您不能这样做。有两种可能的方法来解决这个问题

  • 查找可旋转的第三方控件
  • 重写所有控件。您应该验证要旋转的所有控件的绘制方法,以便它们将被绘制

  • 您可以创建一个wpf窗口,其中包含您的内容,然后对其应用旋转变换吗

    最后,我通过克隆表单和包含的所有控件(如果有人想查看代码,只需注释)来解决这个问题,并继续逐个旋转它们

    Private Shared Sub RotateForm180(frm As Form)
    
        For Each ctrl As Control In frm.Controls
            RotateControl180(ctrl)
        Next
    
    End Sub
    
    Private Shared Sub RotateControl180(ctrl As Control)
    
        Dim oScreenRect As Rectangle = ctrl.Parent.RectangleToScreen(ctrl.Parent.ClientRectangle)
    
        ctrl.Location = New Point(oScreenRect.Width - (ctrl.Location.X + ctrl.Width),
                                  oScreenRect.Height - (ctrl.Location.Y + ctrl.Height))
    
        For Each c As Control In ctrl.Controls
            RotateControl180(c)
        Next
    
    End Sub
    
    也可以通过旋转来形成背景

    _BackgroundImage.RotateFlip(RotateFlipType.Rotate180FlipNone)
    

    你是说把它旋转90度,让它仍能正常工作吗?我想把它旋转180度,这背后有很好的理由,解释太长了。不幸的是,我无法重新绘制内容。我有几十个甚至更多的已经发展的形式,充满了物体,我需要旋转。