У меня есть стиль Button
, который я разрабатывал в WPF, как указано в в этом вопросе . Еще одна вещь, которую я хотел бы сделать с этим стилем, это немного уменьшить 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
заключается в том, что он в пиксельных координатах, а не в координатах относительно размера объекта. Если я добавлю TranslateTransform
0,01, 0,01, то он сместит Button
на 0,01 пикселя в обоих направлениях x и y, а не в 0,01 * размера (изображения) в каждом направлении. Как я могу получить это относительное преобразование, и как я могу сделать так, чтобы это происходило как стиль, т. Е. Чтобы мне не приходилось делать разную математику для каждого другого размера Button
, который у меня есть?