我已经在WPF中开发了Button
样式,如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
将与Image
相关联的Button
缩放到按钮所在区域的左上角(即,它会重新缩放到按钮的0,0坐标,或者至少,这就是我的假设)。
我对TranslateTransform
的理解是它在像素坐标中,而不是相对于对象大小的坐标。如果我输入0.01 {0.01的TranslateTransform
,那么它将在{x}和x中移动Button
0.01像素,而不是在每个方向上移动0.01 * sizeof(imagedimension)像素。我怎样才能得到相对变换,我怎样才能将它作为一种风格发生,也就是说,我不必为每个不同的Button
尺寸做不同的数学运算?
答案 0 :(得分:2)
要缩放整个中心,您可以添加触发器:
<Setter Property="RenderTransformOrigin" Value=".5,.5"/>
答案 1 :(得分:1)
您需要将Button上的RenderTransformOrigin设置为0.5 x 0.5:
RenderTransformOrigin="0.5,0.5"