c# - 使 ScaleTransform 从中心而不是左上角开始

标签 c# .net wpf xaml button

我有一个 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/

相关文章:

c# - C#中有值类型集合吗?

c# - 如何向 SyndicateFeed 对象的序列化输出添加换行符?

C# 可移植应用程序与 .NET

.net - 停止移动 Winforms 窗口的最巧妙方法是什么

c# - 当 WPF DataGrid 为空时显示 “No record found” 消息

javascript - SSRS PDF 生成

c# - 杀死单一服务

c# - ServiceStack + Swagger 以不同方式对资源进行分组的能力

wpf - 如何在WPF中获取可用字体

c# - 获取 wpf 组合框选择的值