问题标签 [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.

0 投票
3 回答
293 浏览

unit-testing - 如何正确创建功能、测试、故事并将其分解

我试图掌握整个 TDD 方法,因此,我真的不知道如何将其作为一个简洁的问题提出,所以这里是冗长的版本。我似乎正在经历保龄球 (Martin)、金钱 (Feathers) 和其他类似游戏/简单示例与功能齐全的企业应用程序之间的差距。

我试图弄清楚我是否遗漏了诸如功能概念之类的东西,据我所知,它可以增加业务价值,或者在进行 TDD 时如何正确分离关注点,以及每个关注点如何应用于另一个。如果对特性的定义是硬性规则,那么日志记录和错误报告之类的东西就不是特性。这是否意味着 TDD 不提供记录和通知的方法?

不想挑起任何战争,我很确定情况并非如此,所以我告诉自己,“商业价值”必须将中间应用程序从客户的商业价值转变为企业(应用程序的创建者)的商业价值。

所以我然后尝试像这个常见的例子一样切换它来自:作为一个数学白痴当我输入 2 时,按 add,输入 2,然后按 = 我要返回 4。

致:作为监控系统的系统分析师当用户输入导致未处理错误的函数时,我想要应用程序的当前状态、抛出的异常和堆栈跟踪进入日志,并向系统分析师分发列表发送电子邮件.

然后:作为业务分析师,确保所有客户的订单都得到处理当用户提交电子订单并且路由或会计信息未验证时,我希望将无效的会计和路由信息输入日志并通过电子邮件与附加的订单文件一起发送到业务分析师用户组。除非问题是由于网络问题而无法访问数据库以查找客户信息 在日志中输入“由于网络问题而无法访问数据库以查找客户信息”并将包含错误消息的电子邮件发送到系统分析师分发列表。

然后它开始扩展到我认为完全不能接受的东西:作为电子订单完成检查收到订单时,我想检查 x12 文件是否已翻译成平面文件,如果验证或翻译日志失败并通过电子邮件发送错误,则提取订单信息和状态并将其加载到平面数据库文件被发送到队列到 as400 并且状态被更新到数据库 as400 发送确认他们收到订单并且状态被更新到数据库 as400 发送平面文件确认并且状态被更新到数据库确认被转换为 x12 并且状态被更新到数据库 x12 确认被适当地路由并且状态被更新到数据库 确认被发送到如果 x12 包含无效数据,则将状态更新到数据库中可能的错误场景。

即使您将每个功能分解为自己的“功能”,您仍然会遇到日志记录问题,通知系统分析师应用程序引发异常或发生网络错误或找不到数据库等或业务组无法识别帐号的订单是遇到等。将其中任何一个添加到类中,作为方法、属性等似乎违反了单一责任原则。大约在那个时候事情开始旋转,我头晕,呼吸急促和心悸

因此,由于这对我来说非常混乱,以至于我什至不知道如何将其作为一个清晰的问题提出来,所以我将尝试这样总结。

你如何确定何时/何地以及如何分解这些东西并将它们分开?很容易说将它们分解成提供商业价值的最小部分,但是当你不能在没有许多其他部分的情况下拥有一个部分时,“真正”的答案是什么?所有这些都不适合一个粘性。

我愿意接受包括更多书籍、教程、视频在内的答案,但我认为是否有一些现实世界的应用程序可以解释这些类型的事情,这些事情遵守敏捷和 TDD 原则,可能会提供最大的价值?诚然,我对此相对较新,但我已经阅读了 Martin/Feathers/Osherove 的书籍,我在井字游戏、保龄球、素数等方面看到了许多 katas,但没有记录,没有错误报告那种“现实世界”的东西。


让我试试别的。

我通过 ftp 从大型机获取一个文件,列出要向我们的供应商下的订单,这个文件称为摘要文件。我每 5 分钟检查一次此文件。当有文件时,我会对其进行解析,然后检查以确保我们通过 MQ 收到了此摘要文件中列出的每个订单。作为双重检查,我还会检查订单是否存在,因为如果未能收到摘要文件,我们无法确保我们收到了所有订单。话虽如此,以下似乎我正朝着正确的方向前进?

再次重复,用订单替换摘要。这就是我想出的。

0 投票
2 回答
1352 浏览

wpf - 使用 Storyboard 作为计时器有什么意义?

我看过一些将 StoryBoard 用作计时器的代码示例,例如:

Storyboard 在某些时候比 Timer 更好吗?人们为什么使用它?

PS 问题与 Silverlight 和/或 WPF 有关。

0 投票
2 回答
2632 浏览

c# - Silverlight Storyboard 中的收缩面板

我想通过单击按钮来缩小项目的宽度。

现在我基本上有两个对象,当您单击对象A 上的按钮时,故事板会启动,它围绕 x 轴旋转并折叠它。然后它通过将它的可见性设置为可见来显示 objectB 并将其旋转到视图中。

我要添加的只是在情节提要发生在 objectA 和 objectB 时将宽度设置得更小,然后在情节提要的末尾将其设置为正常。

我尝试设置厚度,但我收到一个编译时错误,抱怨它是只读的。

我现在有一个简单的布局......

这是我的 UI XAML:

这里是故事板...

0 投票
1 回答
2672 浏览

wpf - 为什么 Storyboard 价值不会从资源或绑定中获得?

我在下面有结构,它可以工作:

如果我尝试这样的事情为什么它不起作用:

是的,我在故事板之前定义了资源。像下一个这样的声明也不起作用:

是的,它是背后代码的公共属性,并且this.DataContext设置为this

0 投票
1 回答
728 浏览

wpf - SkipToFill 用于非运行的故事板

我有一个带有例如 2 个动画的故事板。现在我希望用户可以跳过完整的故事板,但动画属性应设置为动画的最终值。当情节提要已经在运行时,SkipToFill 可以完美地完成这项工作。但是我还需要像 SkipToFill 这样的故事板,它还没有运行。这个等价物或实现这一点的最佳方式是什么?非常感谢你!

0 投票
1 回答
1964 浏览

c# - 故事板 - 没有完成的事件

这可能是一个简单的问题,但我怎么知道情节提要动画何时完成?我正在使用 .Net 3.0,所以也许这就是原因,但在我的其他项目(.net 4)中,我可以处理一个简单的 Completed 事件。使用 .net 3.0 在 WPF 中执行此操作的方法是什么?谢谢

针对评论进行编辑:我猜错误出在其他地方。我无法从代码隐藏访问我的故事板。

但是,如果我将触发器分配给 Blend 中的按钮,我可以像这样访问它们:

但由于有许多触发器调用同一个情节提要,我必须像上面一样为每个触发器手动设置事件处理程序。无法从代码隐藏中访问我的故事板是否有原因?或者有没有办法将多个触发器分配给同一个故事板,这样我就不必处理 Completed 事件

ETC..

谢谢

0 投票
4 回答
2420 浏览

silverlight - Silverlight 滚动动画会占用大量 CPU 时间

在我们的应用程序中,我们在ChildWindow. 显示此窗口时,我们的 CPU 利用率非常高。文本使用的是 aBitmapCache并且启用了硬件加速。即使在从子窗口中删除剪切矩形和投影后,CPU 使用率也会攀升至 80-90%。当我启用重绘区域可视化时,我看到只有滚动文本被重绘,所以我不确定为什么 CPU 会发疯。Canvas.Top我尝试对两者和 a 的TranslateY属性进行动画处理CompositeTransform以进行滚动。

关于什么可能导致这个动画如此昂贵的任何想法?有没有什么好的文章可以提供一般优化动画的建议?这是我的 XAML:

更新:

CPU 问题与其ChildWindow本身没有直接关系,而是与DropShadowEffectSilverlight 浪费性地重新渲染的对象有关。我添加了一个答案来描述我如何解决这个问题。

0 投票
1 回答
15985 浏览

.net - 在 WPF ListBoxItems 中使用情节提要动画进行鼠标悬停和选择

我有一个 WPF 应用程序,它有一个列表框,我正在尝试对其应用一些鼠标悬停效果。当我使用 simple Setters 更改鼠标悬停/选择的背景颜色时,一切正常,但我认为如果它在状态之间进行动画处理会更好看,所以我将Setters 切换为 enter/exit Storyboard。最初一切都很好(鼠标悬停动画进出,选择动画进出),但是一旦选择了某些东西然后被取消选择,它就再也不会做鼠标悬停效果了。

这是显示问题的最小代码示例:

我已将退出动画淡化为非黑色,因此您可以看到它在IsSelected退出情节提要后卡住了。

有任何想法吗?

0 投票
1 回答
653 浏览

wpf - 是否可以在不重新启动整个动画的情况下更新 DoubleAnimation.FromProperty?

我对很多 WPF 还不是很熟悉,所以如果这个查询暴露了一些明显的误解,我会很感激他们被指出。

我想要做的(无论好坏)是将 aDoubleAnimation.FromProperty与包含/运行动画的 StackPanel 的实际宽度同步。

我最初尝试使用数据绑定来执行此操作,例如

但这似乎不起作用。虽然我可以将一个文本框绑定到 From 属性并看到它正在发生变化,但动画仍然从初始值开始运行。这与故事板冻结有关吗?(我对此一无所知,但只是听说过)

然后我想为什么不停止并重新启动故事板(将其关闭然后再打开!),同时通过处理StackPanel.SizeChanged事件来更改 FromProperty。像这样的东西:

这可行,但是,当然,每次调整面板大小时,它都会从头开始动画。我更喜欢的是能够从中断点恢复动画,但使用新的 FromProperty。这甚至可能吗?

0 投票
2 回答
1078 浏览

wpf - WPF:情节提要设置属性覆盖后面的代码?

我正在开发一个 wpf c# 应用程序,我有一个问题。我有一个故事板,最后将网格的属性设置为 Visibility.Visible。现在在我的代码后面,当我尝试在情节提要运行后再次将可见性设置为隐藏时,可见性不会改变!

故事板是否仍在以某种方式运行,或者故事板设置属性在运行故事板后是否是固定属性?