在XAML中设置凹陷效果

时间:2017-12-19 08:59:37

标签: c# wpf xaml

我试图在XAML中设置我的属性,以便在按下按钮时产生沉没效果。我这样做是通过增加边框厚度来实现的。 它给出了一个错误,指出无法分配特定值。我在这里弄错了什么?

注意:我尝试使用DropShadowEffect但它可以工作,但边框效果不起作用。

这是我的XAML:

NORTH

2 个答案:

答案 0 :(得分:3)

为什么不按这样触发:

<Trigger Property="IsPressed" Value="True">
    <Setter TargetName="border" Property="BorderThickness" Value="5,5,0,0"/>
    <Setter TargetName="border" Property="Effect" Value="..."/>
</Trigger>

修改

以下是我在BorderThicknessBorder内更改ControlTemplate的{​​{1}}的简短示例:

Triggers

enter image description here enter image description here

请原谅那些图像上的劣质比例。

答案 1 :(得分:3)

在资源中定义样式:

<Style TargetType="Button" x:Key="SunkenEffectStyle">
 <Style.Triggers>
   <EventTrigger RoutedEvent="Button.Click">
     <EventTrigger.Actions>
       <BeginStoryboard>
         <Storyboard>
            <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="BorderThickness" BeginTime="00:00:00">
               <SplineThicknessKeyFrame KeyTime="00:00:01" Value="10,10,0,0" />
               <SplineThicknessKeyFrame KeyTime="00:00:03" Value="0,0,0,0" />
            </ThicknessAnimationUsingKeyFrames>
         </Storyboard>
       </BeginStoryboard>
   </EventTrigger.Actions>
  </EventTrigger>
 </Style.Triggers>
</Style>

<强>用法:

<Button Content="Click Me" Style="{StaticResource SunkenEffectStyle}" 
        Height="50" Width="100"/>

此答案还涵盖了您之前的问题here

我在这里使用了关键帧,因为你希望动画在启动时更快,在返回时更慢

Sunken Effect