问题标签 [wpf-animation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
103 浏览

c# - WPF IsSelected 动画,如何以正确的方式在代码中使用事件/数据触发器

我已经能够在我的子类 TabItem 中使用以下代码执行上述操作:

我知道我正在采用正确的方法来做到这一点 - 我应该使用我相信的 DataTriggers 和 Setters。

我已经进行了广泛的搜索,所有内容都在 XAML 中,大部分都可以解释为 C#,但不是全部。

有人可以指出我在后面的代码中执行此操作的“正确”方法吗?

0 投票
0 回答
4357 浏览

c# - 平滑动画 wpf 窗口宽度和高度以及 left 和 top 属性

我无法将窗口的高度和宽度与顶部和左侧属性一起设置动画。
(如果你想运行这个,下载示例的链接在这个问题的末尾。)

总是当我运行这个动画时,我的窗口首先平滑移动到新位置(平滑地改变顶部和左侧)并且在窗口移动期间平滑地动画宽度属性..但是窗口高度没有响应..然后窗口高度从一个值(旧高度)到新的高度。

我的 WPF 应用程序很简单 - 仅用于测试(4 个属性、1 个按钮和 1 个功能):

首先,我将此属性添加到我的窗口(文件:)MainWindow.xaml.cs

然后我在同一个文件中添加了一个用于创建和启动动画的新程序:

MyWindow同一文件的初始化中MainWindow.xaml.cs,属性设置为此值(将动画固定到垂直底部并水平居中):

我的应用程序有 1 个按钮,为此我为上一个过程的随机调用设置了单击事件:

完整的例子是我的 xaml MainWindow.xaml

我阅读了几篇文章(Wpf - 从下往上动画高度- 我没有网格,或WPF:动画不平滑)但看起来与此问题无关。

链接到带有示例的 zip 文件Google Drive 上的应用程序代码

只有最后一点:我使用 Windows7 64bit 和 .NET 4.5

0 投票
0 回答
62 浏览

c# - 如何从第三方 SolidColorBrush 资源中提取颜色

我有一个由第 3 方定义的名为“资源”的 DynamicResource。它引用了一个 SolidColorBrush 并且它的颜色会根据某些事情发生变化。

我需要创建一个以“资源”的当前颜色开头的颜色动画,但我不知道如何从 xaml 中的资源中提取颜色并在 ColorAnimation 中使用它。

如果不使用后面的代码,这是否可能?

0 投票
2 回答
119 浏览

c# - 为什么在前一个动画完成之前开始相同的动画时,淡入淡出不起作用?

我有以下简单的动画:

它只是在值更改时使 flash 成为一个值。如果您写一个字母,您会看到它正确闪烁到动画中设置的颜色并返回。但是,如果您单击几次,持续时间会更长(这是所需的行为),但它会变为原始颜色而不会淡出。为什么会发生这种情况以及如何避免?

0 投票
2 回答
2921 浏览

c# - WPF在处理事件之前等待动画结束

假设我在屏幕上有一个圆形按钮,我想动画化点击它的效果。最初,按钮(椭圆)背景(填充)是透明的,边框画笔(轮廓)具有一些颜色和粗细,使其看起来像一个按钮。

现在,我想为这个椭圆的背景(填充)设置动画,当触控笔或鼠标进入它时,如果你点击它(你在 iphone 和其他设备上看到它)给它那种效果。

我在应用资源中创建了一个样式:

然后订阅 ''StylusDown''/''MouseDown'' 事件来实际处理按钮按下。按下按钮启动另一个表单。问题是我想在启动此表单之前等待动画完成。这样的事情可能吗?

0 投票
2 回答
2173 浏览

c# - WPF TextBlock 从左到右淡入

Textblock当边界Text发生变化时,我有一个动画:

目前,整体Textblock正在淡入淡出,但我希望淡入淡出从左到右。这可能吗?

编辑

我用下面的评论解决了我的问题。这是我的解决方案:

0 投票
0 回答
74 浏览

c# - 如果在完成之前发生多个触发器,如何增加动画的持续时间?

我有一个简单的彩色动画:

如您所见,当 DataContext.ValueChanged 为真时会发生这种情况。这是一个布尔值,每次需要时都会变为 true -> false。通常动画需要 1 秒来执行,我想要的是在动画已经运行时发生多个 DataContext.ValueChanged 时延长时间。

所以如果我这样做:

基本上,每次 DataContext.ValueChanged 值变为 true 时,都会向 ColorAnimation 添加一秒,并且它必须保留 To: 颜色,直到它必须开始面朝外。

谢谢!

编辑:

我有这样的viewmodel代码:

此代码每秒调用一次,并且动画持续时间也设置为一秒,因此如果条件满足预期的输出,则 TextBox 将保留 To 颜色,直到条件为假,然后执行淡出到 From 颜色。

希望现在更清楚!

编辑2:

这是一个演示问题的项目。执行它并在 TextBox 上键入,如果每个键的键入速度超过一秒,则文本应保持红色。当您减少到每个键不到一秒时,动画应该完全执行:

项目源和二进制文件

编辑 3:

在此处添加项目的源代码:

XAML:

代码:

0 投票
1 回答
3143 浏览

wpf - WPF 动画(同时更改单个元素的多个属性)

我需要同时为一个 ui 元素的多个属性设置动画。

例如,同步减小窗口的宽度和高度。

任何想法?

它会一步一步地做动画;宽度更改完成后高度将更改!:|

0 投票
1 回答
932 浏览

wpf - 如何在 WPF 中为控件模板的一部分设置动画?

所以我只是为了这个例子而简化了这个。我有一个按钮,在它的 ControlTemplate 中有一个红色椭圆。单击按钮时(MouseDown 事件),我希望 Ellipse 动画在 1 秒后变为透明。这是我的xml

问题是当我单击按钮时,椭圆不是透明的。我的猜测是,由于某种原因,它找不到名为“ripple”的对象,但我不知道为什么。我究竟做错了什么?

0 投票
1 回答
2279 浏览

wpf - 当 DoubleAnimation StoryBoard 可见时 WPF 矩形触发器

我有一个 DoubleAnimation 淡入/淡出 WPF 中的矩形

这工作正常,但我希望这仅在矩形可见时发生。目前,它在加载时在后台动画(我假设)。

如何更改它以使其在可见时开始动画并在隐藏/折叠时停止?

还是没关系?我只是担心它会占用资源(用于动画),因为应用程序中有很多矩形并且大部分时间它们是隐藏的。

谢谢。