1
53
我不知道如何在纯XAML中同时执行动画(淡入和淡出)。但简单的淡出可以实现相对简单。用触发器替换DataTrigger,并删除退出,因为它们在淡出场景中没有意义。这就是你将拥有的:
但是,别放弃。如果你想同时支持这两个动画,我可以建议在XAML后面进行小编码。完成一个技巧后,我们将通过在XAML中添加一行代码来获得您想要的内容:
每次我们改变btn.可见性从可见变为隐藏/折叠按钮将淡出。每次我们把可见性改回来,按钮就会淡入。此技巧将适用于任何FrameworkElement(包括ListView:)。 以下是VisibilityAnimation.IsActive附加属性的代码:
这里最重要的是forcevenibility()方法。如您所见,在淡入淡出动画完成之前,我们不允许更改此属性。 此代码既不是线程安全的,也不是无缺陷的。它的唯一目的是显示方向:)。因此,请随时改进、编辑和获得声誉;)。 |
2
19
不能直接对淡出使用Visibility属性,因为对其设置触发器将首先隐藏/折叠控件,然后对其进行动画设置。所以基本上你会得到一个折叠控件上的动画=>没有。
一种“可靠”的方法是引入一个新的依赖属性(附加的或不附加的),比如
下面是一个例子:
|
3
6
我知道这个问题有点老了,但是我现在才读到它,我已经修改了Anvaka给出的代码。它支持绑定到可见性(仅当绑定模式设置为twoway时)。它还支持fadein和fadeout的两个不同的持续时间值。 这是课程:
|
4
4
我是以一种稍微不同的方式来回答这个问题的——我有一个关于雷的答案的扩展版本。 this question 它将fadein()和fadeout()扩展方法添加到所有可以适当折叠或显示元素的方法中,然后我可以对这些方法调用fadein()和fadeout(),而不是使对象可见,它将在没有任何特定动画代码的任何元素中工作。
|
5
3
最好用一种行为
这特别适用于边框-我没有尝试过用户控件,但我希望同样适用。 要使用它,需要混合交互命名空间:
并在您希望其行为位于的边框上使用此标记:
您还需要为行为类添加命名空间。 |
6
2
现在已经很老了,但你能不能把这些双重含义连起来?
|
7
2
您可能想尝试autoreverse属性…尽管我不确定它是否按你想要的方式工作。 这是我在msdn上找到的: 当时间线的AutoReverse属性设置为true并且其RepeatBehavior属性导致它重复时,每个正向迭代之后都是反向迭代。这会重复一次。例如,一个时间线的autoreverse值为true,迭代计数为2,将向前播放一次,然后向后播放,然后再向前播放,然后再向后播放。 |
user180708 · 将日期转换为英文日期 6 年前 |
Anthony Smyth · 如何更改禁用WPF按钮的按钮样式? 6 年前 |
Donat · 在XAML中绑定单例(UWP) 6 年前 |
Amibluesky · 扩展/减少文本块WPF/Xaml中的符号 6 年前 |
smoore4 · 访问代码隐藏中的XAML绑定 6 年前 |