2
我嘗試旋轉Border
並使MainWindow
根據Border
旋轉所採用的新空間更改其大小。 我已經設置了SizeToContent="WidthAndHeight"
,但是當我旋轉邊框時,窗口大小不會發生變化。旋轉邊框不會更改窗口大小
我是否需要以編程方式爲MainWindow設置Width
和Height
,或者可以通過其他方式更改xaml代碼?
我的XAML代碼:
<Window x:Class="MyClass.MainWindow"
WindowStyle="None" AllowsTransparency='True'
Topmost='False' Background="Transparent" ShowInTaskbar='False'
SizeToContent="WidthAndHeight" WindowStartupLocation="Manual">
<Border Name="MyBorder"
BorderBrush="Transparent"
Background="Transparent"
HorizontalAlignment="Left"
VerticalAlignment="Top"
RenderTransformOrigin="0.5,0.5">
</Border>
</Windows>
我c#
代碼上Window_KeyDown
:
# RotateTransform rt = new RotateTransform()
在類級別聲明。
if (e.Key == Key.I)
{
if (rt.Angle + 1 < 360)
{
rt.Angle += 1;
}
else
{
rt.Angle = 0;
}
MyBorder.RenderTransform = rt;
}
謝謝!爲什麼輪換不是來自邊界的中心? –
在'LayoutTransform'中,'TranslateTransform'沒有效果。該元素將位於其父容器中。根據你的情況,「HorizontalAlignment =」Center「'和VerticalAlignment =」Center「'可能會做你想做的事情 –
我已經在MSDN上閱讀了足夠的內容,理解我不能用LayoutTransform來做到這一點。我將在旋轉過程中使用主窗口位置來模擬效果!再次感謝你! –