Я круговую кнопку, как "Выдвинутый" эффект на нажатие кнопки
XAML для этого есть,
<!--round button-->
<Style x:Key ="roundButtonTemplate" TargetType ="{x:Type Button}">
<Setter Property ="Margin" Value ="10,0,10,10"/>
<Setter Property ="Template">
<Setter.Value>
<ControlTemplate TargetType ="{x:Type Button}">
<Grid>
<Ellipse x:Name ="OuterRing" Width ="40" Height ="40" Fill="{TemplateBinding Background}"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property ="IsPressed" Value ="True">
<Setter TargetName ="OuterRing" Property ="Height" Value ="30"/>
<Setter TargetName ="OuterRing" Property ="Width" Value ="30"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И я применил его как,
<Button Style="{StaticResource roundButtonTemplate}" Click="button_Click" Background="#CC41B1E1" Width="42" Height="42" Margin="0,0,10,0">
<Image Height="24" Width="24" Source="/Images/add.png" />
</Button>
Теперь проблема когда я нажимаю кнопку, только круг сжимается, но изображение остается таким, каким оно есть. Я хочу, чтобы вся кнопка сжималась вместе с изображением, а также придавала ему идеальный «толкаемый» эффект. Любая идея, что не так?
Это решило проблему. Благодаря! Не могли бы вы немного объяснить, что именно происходит? – Mangesh
Когда 'IsPressed' истинно, он установит' RenderTransform' основной 'Grid' (названный в данном случае _RootGrid_) на' ScaleTransform', который уменьшит «Grid» до 90% от исходного размера (как X, так и Y). 'RenderTransformOrigin =" 0.5,0.5 "' гарантирует, что центральная точка преобразования является центром «Grid», поэтому она масштабируется до центра управления. – dkozl
'RenderTransform' не влияет на фактический размер или расположение элемента управления, только его внешний вид, поэтому управление не изменит размер или местоположение. У вас есть различные преобразования в вашем распоряжении, такие как 'RotateTransform', чтобы вращаться по заданному углу или' TranslateTransform', чтобы перемещать управление влево/вправо и вверх/вниз по заданному значению – dkozl