【发布时间】:2023-03-25 02:36:01
【问题描述】:
我有一个 Button 样式,我一直在 WPF 中开发,如 this question 中所述。我想用这种风格做的另一件事是让Button 缩小一点,让它看起来像被点击一样被点击。现在,转换代码如下所示:
<Trigger Property="IsPressed" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="0.98" ScaleY="0.98"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Setter.Value>
</Setter>
<Setter Property="Button.BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="Green" GlowSize="10"></OuterGlowBitmapEffect>
</Setter.Value>
</Setter>
</Trigger>
所以,这很令人兴奋。问题是,ScaleTransform 将与Button 关联的Image 缩放到按钮所在区域的左上角(即,它重新缩放到按钮的 0,0 坐标,或者至少,这就是我假设)。
我对@987654328@ 的理解是它是像素坐标,而不是相对于对象大小的坐标。如果我输入 0.01、0.01 的 TranslateTransform,那么它将在 x 和 y 上将 Button 移动 0.01 像素,而不是在每个方向上移动 0.01*sizeof(imagedimension) 像素。我怎样才能得到这种相对变换,我怎样才能让它作为一种风格发生,也就是说,我不必为每个不同的Button 尺寸做不同的数学运算?
【问题讨论】: