C# 如何旋转WPF窗口?

C# 如何旋转WPF窗口?,c#,.net,wpf,xaml,3d,C#,.net,Wpf,Xaml,3d,是否可以使用xaml将WPF窗口旋转45度?据我所知,您无法旋转整个窗口,但可以将窗口内的所有内容都放入自定义控件中,并将RenderTransform对象应用于自定义控件 示例(有点简单): --Dan第一个问题:为什么要旋转整个窗口? 如果您确实需要它: 无法旋转普通WPF窗口。见: 您必须创建一个无边界窗口并为其提供UI。见: 对于旋转窗口外观: 设置: 允许透明性属性 对 WindowsStyle到None到 拆下车窗镀铬件 背景 透明 包括边框(或任何有意义的东西,如矩形

是否可以使用xaml将WPF窗口旋转45度?

据我所知,您无法旋转整个窗口,但可以将窗口内的所有内容都放入自定义控件中,并将RenderTransform对象应用于自定义控件

示例(有点简单):


--Dan

第一个问题:为什么要旋转整个窗口?

如果您确实需要它:
无法旋转普通WPF窗口。见:

您必须创建一个无边界窗口并为其提供UI。见:

对于旋转窗口外观:
设置:

  • 允许透明性属性 对
  • WindowsStyle到None到 拆下车窗镀铬件
  • 背景 透明
包括边框(或任何有意义的东西,如矩形、圆形、椭圆等)作为窗口内容和边框的以下属性:

  • 白色背景(或任何不透明颜色)
  • 旋转变换,然后
  • 较小的尺寸(以便在窗口内旋转时适合)
边框将为您的窗口提供UI


注意创建自己的无边界窗口的注意事项,因为它要求您提供窗口界面,如最小化、最大化、关闭按钮;并且可能需要一些非托管代码。
此外,在下面的示例代码中,旋转时的边框必须保持在窗口的边界内,否则它(以及自定义窗口)将被修剪。

示例代码

<Window x:Class="CustomWindowStyle.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        AllowsTransparency="True" WindowStyle="None" Background="Transparent"
        Title="MainWindow" Height="600" Width="600">

        <Border BorderBrush="Green" BorderThickness="2" Background="White" Width="360" Height="360">
            <Border.RenderTransform>
                <RotateTransform Angle="-45" CenterX="180" CenterY="180"/>
            </Border.RenderTransform>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="23" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Button Grid.Row="0" Content="X" Height="23" Width="23" Name="button1" HorizontalAlignment="Right" VerticalAlignment="Top" Click="button1_Click"/>
                <Grid Grid.Row="1">
                    <!--Main window content goes here-->
                    <TextBlock Text="Main window content goes here" HorizontalAlignment="Center" />
                </Grid>
            </Grid>
        </Border>
</Window>


谢谢,我想让用户控制以交互方式旋转窗口,让应用程序更有趣。这是一款类似于游戏的应用程序,因此希望根据窗口方向控制重力,我知道这很愚蠢,但这正是我的想法。我有一种预感,它一定适用于某些类似游戏的应用程序。:)无论如何,我想补充一点(虽然是隐式的):1。边框可以替换为任何有意义的内容,例如椭圆、圆等。以及,2。因为边框背景不一定是白色的,它可以是任何不透明的颜色。