1 回答

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊
一種解決方案是為邊框的邊距設(shè)置動畫。此外,我必須將觸發(fā)器從 Style.Triggers 移動到 ControlTemplate.Triggers 以訪問作為目標(biāo)的邊框。
<Style TargetType="Button"
x:Key='Circular'>
<!--Set to true to not get any properties from the themes.-->
<Setter Property="OverridesDefaultStyle"
Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border x:Name='_bottom'
CornerRadius='5'
BorderBrush="Black"
BorderThickness="0,0,0,2">
<Rectangle Fill="Gray" />
</Border>
<Border x:Name='_top'
CornerRadius='5'
BorderBrush="Black"
BorderThickness="0,0,0,2"
Margin='0,0,0,10'>
<Grid>
<Rectangle Fill="LightGray" />
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding='{Binding RelativeSource={RelativeSource Self}, Path=IsPressed}'
Value='True' />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin"
Storyboard.TargetName="_top"
Duration="0:0:0.1"
From="0,0,0,10"
To="0,10,0,0" />
<ThicknessAnimation Storyboard.TargetProperty="Margin"
Storyboard.TargetName="_bottom"
Duration="0:0:0.1"
From="0,0,0,0"
To="0,10,0,0" />
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
<MultiDataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin"
Storyboard.TargetName="_top"
Duration="0:0:0.1"
From="0,10,0,0"
To="0,0,0,10" />
<ThicknessAnimation Storyboard.TargetProperty="Margin"
Storyboard.TargetName="_bottom"
Duration="0:0:0.1"
From="0,10,0,0"
To="0,0,0,0" />
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.ExitActions>
</MultiDataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
- 1 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報