如何在XAML中围绕控件中心进行旋转

Pom*_*oma 70 c# wpf xaml

我想旋转按钮到90度,但它被剪裁,因为它旋转arount(0,0).如果我不知道它的宽度(以像素为单位)(如果是许多按钮的模板),如何让它围绕中心旋转

Fra*_*ori 117

您必须将控件的RenderTransformOrigin设置为0.5,0.5.

例:

<Button RenderTransformOrigin="0.5, 0.5">
    <RepeatButton.RenderTransform>
        <RotateTransform Angle="90"/>
    </RepeatButton.RenderTransform>
</RepeatButton>
Run Code Online (Sandbox Code Playgroud)

  • 这个适用于我,虽然接受的答案没有.也许RenderTransform和LayoutTransform之间存在差异? (7认同)
  • 我对这个解决方案有一个问题,因为它旋转但保持原始布局间距。LayoutTransform 解决方案(接受的解决方案)正确计算了元素的空间。 (2认同)
  • 这适用于UWP应用程序,而接受的答案则不适用. (2认同)

And*_*ndy 51

<Button ...>
  <Button.LayoutTransform>
    <RotateTransform CenterX="0.5" CenterY="0.5" Angle="90"/>
  </Button.LayoutTransform>
</Button>
Run Code Online (Sandbox Code Playgroud)

  • 这个在Windows Phone 8 .NET 4.5 C#XAML应用程序中对我不起作用.虽然@FrancescoDeVittori工作过. (10认同)