【发布时间】:2019-12-28 11:14:06
【问题描述】:
我希望能够单击我的按钮,并且在单击触发器上我希望背景填充一个圆圈,就像一个唯物主义按钮一样。我知道有一个库可以解决这个问题,但我更愿意开发自己的库,因为我想学习。
这是您单击时的外观,而不是您将鼠标移出时的外观。
我尝试过使用按钮的样式,尝试使用情节提要制作一些动画,但我似乎无法弄清楚。
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Blue"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
<EventTrigger RoutedEvent="Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard BeginTime="00:00:00"
RepeatBehavior="Forever"
AutoReverse="True"
Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)">
<ColorAnimation From="Black" To="Red" Duration="0:0:0.1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
当我单击按钮时,我希望背景从圆形开始填充(按钮不应该是圆形),填充按钮的其余部分,我现在看到的只是一种褪色的颜色整个事情都不是我所期待的。
【问题讨论】:
-
删除/评论“IsMouseOver”触发器。它将运行动画。
-
看起来不像点击动画。相当花哨的鼠标输入/输出之一。要达到这样的效果,您必须修改按钮控制模板并添加
Ellipse并显示动画(Width/Height?不确定)。当鼠标离开时,按钮应该使这个椭圆可见。 -
这是点击/点击关闭功能吗?如果是这样,您最好使用 ToggleButton(带有适当的模板)而不是 Button。
标签: c# wpf xaml storyboard