问题标签 [storyboard]
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.
wpf - 在动画期间或之后未调用 WPF InvalidateMeasure
我有一个具有以下 ListBoxItem 样式的自定义 ListBox。它包含一些动画以在鼠标悬停在 ListBoxItem 上时对其进行缩放。
我为我的 ListBox 有自己的 MeasureOverride 实现,它被调用并且一切都很好,除了在缩放 ListBoxItem 之前没有调用 MeasureOverride,因此它请求的大小比所需的小得多。
动画完成后,我尝试在 ListBox 上调用 InvalidateMeasure,但未触发 MeasureOverride 方法。目前我正在我的 ControlTemplate 中的 Grid 上应用动画,这是导致 MeasureOverride 不被调用的原因吗?如何在控件本身上应用相同的动画?
c# - 隐藏受影响的控件时,WPF 故事板动画是否继续运行?
我正在通过将 StrokeDashOffset 动画应用于 Rectangle 控件来实现“行军蚂蚁”风格的动画。我希望在矩形可见时播放动画,但在隐藏时不占用额外的 CPU 周期。WPF 是否足够智能,可以在隐藏受影响的控件时自动暂停动画?
wpf - 为什么当我使用故事板时这些动画不起作用?
我创建了一个简单的子类StackPanel
,我可以使用动画在屏幕上移动TranslateTransform
。它看起来像这样:
这是我的问题:如果我像上面的代码那样直接为 X 和 Y 属性设置动画,它就可以工作。但是,如果我使用上面的注释掉的代码,这实际上是Storyboard
可以想象的最简单的 in 代码创建,则什么也不会发生。动画运行 - 至少, Completed 事件被引发 - 但屏幕上没有任何变化。
显然我做错了什么,但我看不到它是什么。我见过的每个用代码创建故事板的例子都是这样的。很明显有一些关于动画和故事板的东西我还不知道:它是什么?
wpf - 在 DataContext 更改时删除/停止情节提要
一般上下文:MVVM 应用程序。
我有一个名为 JobView 的视图。它的 DataContext 是一个名为 Job 的类。Job 中有一个名为 AuthorizationNeeded 的属性。
视图中的边框具有样式(来自资源字典),并且该样式具有数据触发器,该触发器基于绑定的属性 AuthorizationNeeded 启动和停止情节提要。
一切都按预期工作。更改 AuthorizationNeeded 的值会在移至 true 时启动情节提要闪烁,并在移至 false 时移除(并停止)情节提要。
但是,如果我在 storyboard 运行时将 JobView 的 DataContext 更改为不同的 ViewModel(不同的 Job),即使 AuthorizationNeeded 的值在新 Job 中为 false,storyboard 也会继续运行。
在 DataContext 更改期间,数据触发器没有看到 AuthorizationNeeded true -> false 的值变化。
任何关于我如何达到 AuthorizationNeed = true = storboard 运行到 AuthorizationNeeded = false = 故事板在所有情况下都没有运行的期望行为的任何想法都将不胜感激。(我不希望在 DataContext 更改时手动更改 AuthorizationNeeded 的值,因为实际上这个视图上有很多这样的触发器......)
wpf - WPF 动画持续时间
我有一个如下的故事板
持续时间="0:0:1" 已完成="DeviceExplorer_Completed">
由于某种原因,动画似乎没有线性工作。如果我将持续时间更改为 Duration="0:0:0.8"
并将 stroyboard 分配给按钮的 MouseEnter 事件,动画移动但由于某种原因没有完成,我将鼠标移到按钮上几次,然后它最终完成......
任何想法为什么?
wpf - WPF 故事板 GetCurrentState
我试图检测情节提要何时仍处于活动状态,仍然对属性产生影响(即完成时仍然保留它正在动画的依赖属性)。
Completed="DeviceExplorer_Completed"> 持续时间="0:0:0.5">
在代码中,我将 Storyboard aStoryBoard = this.Resources["openDeviceExplorer"] as Storyboard; aStoryBoard.Begin();
但是如何确定动画是否仍然处于活动状态,或者仍然对属性值有影响?
我试过 ClockState aClockState = ClockState.Stopped; aClockState = aStoryBoard.GetCurrentState();
并不断收到 InvalidOperationException “无法执行操作,因为指定的 Storybopard 未应用于交互式控件的此对象”
我尝试了许多排列,例如 aStoryBoard.Begin(this, true); aStoryBoard.Begin(aPanelExternalAvailableCamerasControl, true);
并且仍然不断收到此错误
wpf - XAML C# WPF 执行有序动画序列的最佳有效方法
我想在标签上做一系列动画,例如,首先做从值 0 到 1 的不透明动画,反之亦然,并且只是在不透明动画结束时而不是在前景动画之前。我想在 XAML 代码中执行此操作,然后从 C# 代码开始和完成动画。哪种方法是最好和最有效的?
欢迎所有回复!
提前致谢。
animation - 操作 Storyboard 的目标对象
Completed
在a 事件的处理程序中Storyboard
,我如何获取情节提要应用到的元素?
我的故事板是 ItemTemplate 的一部分:
如果Completed
我想抓取名为Container的网格,以便我可以用它的 DataContext 做一些讨厌的事情。可以做到这一点,还是我走错了路?
谢谢 :)
c# - 故事板适用于所有标签
我想将一个小故事板应用于我窗口中的一组标签。我的故事板是这样的:
我有一个由它组成的窗口:
当我想开始我的故事板时,我会这样做:
其中 _std 是由窗口资源加载的故事板。
动画效果很好,但在所有标签上(不仅仅是我想要的)。我尝试通过 SetTargetName 切换 SetTarget,但构造函数在我的窗口中创建了标签,并且当我尝试“SetTargetName”时无法创建名称。
你有什么想法 ?
谢谢 :)
------------ 编辑:我们要求我更具描述性 ----------------------------- --------------------------------------
标签不是直接在 xaml 中创建的,它们是由 window 的构造函数创建的:
动画由事件处理程序启动:
最后,动画由 DoAnimations 启动:
我想突出显示一组标签,但所有标签都在闪烁。我不知道为什么,但我尝试直接在Xaml中创建一个标签,并在情节提要的Xaml中设置一个Storyboard.TargetName(绑定到标签的名称)。它正在工作......
现在你什么都知道了。
谢谢你的帮助:)
wpf - 等待所有 WPF 动画停止
给定一个 WPF 窗口,它可能有也可能没有动画,我想等到它们都完成后再继续处理。有没有通用的方法来做到这一点。目前我可以做这样的事情:
但这假设我知道情节提要或有某种找到它们的方法。有没有办法做到这一点?