[英]How to rotate a WPF Window?
是否可以使用xaml將WPF窗口旋轉45度?
第一個問題:為什么要旋轉整個窗口?
如果您確實需要它:
您不能旋轉普通的WPF窗口。 另請: 旋轉窗口
您將必須創建一個無邊界窗口並為其提供UI。 請參閱: 用於自定義窗口框架的WPF非客戶區域設計技術
對於旋轉的窗口外觀:
組:
包括邊框(或任何有意義的矩形,圓形,橢圓形等)作為窗口的內容和border的以下屬性:
邊框將為您的窗口提供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>
據我所知,您不能旋轉整個窗口,但是可以將窗口內的所有內容放入自定義控件中,然后將RenderTransform對象應用於自定義控件。
示例(有點簡單):
http://www.codeproject.com/KB/WPF/TransformationsIntro.aspx
-丹
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.