Я хочу, чтобы повернуть кнопку до 90 градусов, но она обрезается, потому что она вращает arount (0,0). Как заставить его вращаться вокруг центра, если я не знаю, что это ширина в пикселях (это шаблон для многих кнопок)
Как сделать вращение вокруг центра управления в XAML
Ответ 1
<Button ...>
<Button.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="90"/>
</Button.LayoutTransform>
</Button>
Ответ 2
Вы должны установить элемент управления RenderTransformOrigin равным 0,5, 0,5.
например:.
<Button RenderTransformOrigin="0.5, 0.5">
<RepeatButton.RenderTransform>
<RotateTransform Angle="90"/>
</RepeatButton.RenderTransform>
</RepeatButton>
Ответ 3
Я понимаю, что источник не имеет отношения к LayoutTransform.
MSDN говорит:
Настройка преобразования обеспечивает мощные возможности масштабирования и вращение. Однако LayoutTransform игнорирует TranslateTransform операции. Это связано с тем, что поведение макета системы для дочернего элементы FrameworkElement автоматически корректируют любые смещения положение масштабированного или повернутого элемента в макет и координаты системы родительского элемента.
а следующее "правильно" поворачивает кнопку.
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="1">Excessively Long Button Still Ok
<Button.LayoutTransform>
<RotateTransform Angle="90" />
</Button.LayoutTransform>
</Button>
</Grid>