我有一个 Button 样式,当鼠标悬停在它上面时,它应该增长到 1.5 倍大小。问题是 Button 从左上角而不是中心增长。有谁知道如何解决这个问题?
<Style x:Key="sizeButton" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
尝试了 Henk Holterman 提供的解决方案,但我无法使用以下代码。好像没有效果还是我做错了?
<Window.Resources>
<Style x:Key="sizeButton" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.5" ScaleY="1.5"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<Button Content="Increase Size" Width="100" Height="50" Style="{StaticResource sizeButton}"/>
</StackPanel>
最佳答案
您可以将 RenderTransformOrigin
设置为 "0.5, 0.5"
<Style x:Key="sizeButton" TargetType="Button">
<Setter Property="RenderTransformOrigin" Value="0.5, 0.5"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
关于c# - 使 ScaleTransform 从中心而不是左上角开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060854/