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来做到这一点。我将在旋转过程中使用主窗口位置来模拟效果!再次感谢你! –