问题标签 [visualstates]
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.
tabcontrol - SketchFlow / 在 TabControl 中使用(选定的)TabItem 来触发状态
背景:一个新的 Sketchflow / Silverlight 项目。Expression Blend 4(终极版)
我有下面的代码。我有一个带有 2 个 TabItem 的 TabControl。我还有 2 个“标注”(大气泡的东西)作为状态变化的快速视觉。
我创建了一个 VisualStateGroup 并添加到它下面的状态。当我从 NAVIGATE 窗口手动调用这些(在我运行项目之后)时,状态按预期工作。callout1 和 callout2 翻转它们的不透明度(在 100% 和 10% 之间)。因此,我对 State 及其运作方式有了基本的了解。
但是,当我向 TabItem 添加触发器事件时,触发器看起来不错,但不起作用。下面是一个剥离的例子,一直到裸露的骨头。
我尝试了 EventName="MouseLeftButtonDown" 和 EventName="Click" 却没有成功。
我还注释掉了 ObjectAnimationUsingKeyFrames 标签,那里也没有运气。
有人看到我错过了什么吗?
基本上,我无法获得(选择)一个 TabItem 来触发状态更改。
谢谢。
------------开始 XAML 代码
c# - 如何从 UserControl 获取 VisualStateGroup 属性以在 Silverlight 4 C# 代码中的 ViewModel 中引用?
我试图在 ViewModel 中以某种枚举的形式提供可视状态(这样我就不必使用字符串文字或手动创建和更新静态属性来控制状态),我意外地发现发现 Silverlight 实际上在我可以使用的 gics 类中生成内部 VisualStateGroup 属性。
所以我的问题是将这些 VisualStateGroups 和其中的实际视觉状态作为静态 getter 公开的最佳方式是什么?扩展 UserControl 可能可行,但如果可能的话,我更希望能够使用 AttachedProperty 按需进行,关于这些方法的优缺点甚至可行性的任何想法?
提前致谢!
wpf - 访问样式的按钮故事板
我的问题是我有一个Button
并且我想访问它Storyboard
,它是指定样式的一部分。
风格很全面,所以我只贴一部分:
我只想在“ExpandedFull”动画结束时收到通知。因此,我认为我必须以编程方式获取“expandStoryBoard”并添加一个Completed事件处理程序。
我唯一要做的就是在运行时访问按钮的样式:
我该如何进行?非常感谢!
wpf - VisualState 中 GradientStop 的 ColorAnimation 开始时的问题
我对 ColorAnimation 有一个非常奇怪的问题。我想做的很简单(我认为):我有一个带有 GradientBrush 作为背景的矩形。这个矩形有不同的 VisualStates 来改变渐变的颜色。我想为状态之间的过渡制作动画。我的问题是当我改变状态时,动画不是以当前颜色开始,而是以默认颜色开始。
这是一个代码片段,可以帮助您重现这一点:
事件处理程序只调用状态更改:
在这种情况下,如果我进入橙色状态,动画会从灰色变为橙色。但是,当我进入红色状态时,动画从灰色变为红色。我希望(并且期望)它从橙色变为红色。
我尝试使用 aSolidColorBrush
而不是 theLinearGradientBrush
并且转换按预期发生。我还尝试在VisualStates
(但使用 a LinearGradientBrush
)之外使用情节提要,它也可以按预期工作。我重现此问题的唯一情况是示例中的情况:LinearGradientBrush
并且ColorAnimation
在VisualState
.
难道我做错了什么?我想要的可能吗?
c# - 一次设置多个视觉状态?
我定义了四种视觉状态,每种状态都会影响同一个银光控件中的不同子控件。我是否可以创建其他视觉状态来调用这些其他视觉状态的组合?
所以如果我有Visual_Group_1、Visual_Group_2、Visual_Group_3、Visual_Group_4
- 是否可以创建一个使用 Visual_Group_1 和 Visual_Group_3 中状态的 Visual_Comb_1 组?
- 然后再制作一个名为 Visual_Comb_2 的,它使用 Visual_Group_4 和 Visual_Group_3?
我很高兴实施solution in xaml or codebehind or a combination of both
. 我目前正在考虑的替代方案涉及大量的代码复制+粘贴,我不太愿意这样做。
每个请求的更多详细信息:
这是我现在大致拥有的:
我的目标是有一个控件,当您单击从 state1 到 state3 的循环时,每个状态都会淡入不同的路径,同时淡出其他路径。我的问题是在“淡出其余路径”部分中有大量复制+粘贴,所以如果我想添加一个 Path5 这意味着将它添加到已经定义的每个视觉状态,或者如果我想要要更改淡出颜色或动画,我必须对每个视觉状态进行此操作。
state-machine - IAR VisualState 需要为状态内的每个表达式触发
我使用基于状态机的设计工具已经有一段时间了,并且已经看到 UML 建模工具允许您在状态内执行逻辑(调用函数、执行其他操作)。但是,在使用 IAR VisualState 几天后,您似乎无法在没有触发器的状态下执行您的逻辑。我很困惑,因为对状态内的每一个动作都有一个触发器是没有意义的!
这是我对状态图工具的期望:如果我进入 StateA,在进入状态后,我在 entry 部分设置我的值,然后我想调用一个函数(我只想调用它,NO TRIGGER),然后在里面那个函数,我想根据一些逻辑触发一个事件,那个事件会触发从StateA到StateB或StateC的状态转换。
这种期待有问题吗?在 VisualSTATE 中可能吗?
非常感谢您的帮助。
silverlight - 视觉状态或 Silverlight 组合框
我正在尝试修改 silverlight 组合框,以便“组合”部分在访问时仅可见。我将 DropDownToggle 部分的 Opacity 更改为 0,并将 MouseOver Visual State 更改为将 DropDownToggle 的 opcaity 设置为 50%。
这工作正常,直到我在控件中选择一个项目。一旦我选择了一个项目,DropDownToggle 的不透明度将永久固定为 50%,并且我(显然)无法让组合恢复到“正常”视觉状态。
另一个有趣的视觉伪影是,当我将鼠标悬停在控件上时,当渐变背景发生变化时,控件仍然会响应鼠标悬停 - 它永远不会恢复为“正常”。
任何反馈表示赞赏
这是所要求的 XAML - 谢谢!
silverlight - Silverlight ToggleButton 检查 VisualState 不工作
我正在尝试在 Silverlight 上的 ToggleButton 上设置 VisualStates 的样式。一切正常,除了 Checked 状态不符合 Rectangle.Fill 中的更改,但文本颜色更改工作正常,因此 Checked 被触发。
我希望 Checked 具有与 Pressed 相同的 VisualState,并且 Pressed 工作正常,但是当 ToggleButton 被按下并且状态随后被选中时,Rectangle.Fill 恢复到开始状态,而不是我为 Checked 状态定义的状态。任何帮助深表感谢。
c# - 如何通过 ViewModel 改变 VisualState
我知道这个问题与许多问题相似。反正我不明白。
我有几个VisualStates(超过 2 个,这就是为什么DataStateBehavior不是我的解决方案)。我有 ViewModel,它有枚举属性CurrentState。每个枚举值代表一个状态,也可以是几个枚举值代表一个状态,不限。我希望在CurrentState更改时更改VisualState(我想,这立即出现在我的脑海中:Binding 正是为这种情况创建的!)
我可以将CurrentState与视图VisualState(仅限 xaml 解决方案)绑定,以获得上述行为吗?
如果是,我该怎么做?
如果不是,我应该如何在我的ViewModel中使用VisualStateManager.GoToState()方法?
silverlight - Silverlight:如何为模板化/自定义控件创建 VisualState
我正在尝试在 Silverlight 中创建模板化/自定义控件。
基本控件可以是System.Windows.Controls.Button
. 该按钮具有以下视觉状态:
我的自定义控件需要另一个状态,MouseButtonUp
(MouseButtonDown
可以用预定义的Pressed
状态表示)。在这里,默认情况下,MouseButtonUp
状态将被解释为MouseOver
状态,但我希望MouseButtonUp
状态的行为与状态不同MouseOver
。
如何添加这种MouseButtonUp
视觉状态?(MouseButtonUp
状态仅在用户释放鼠标之后和用户开始移动之前存在。
顺便说一句:我应该使用自定义控件还是用户控件?我一直对这两个感到非常困惑。似乎它们都可以在很多情况下工作。
非常感谢。
更新:一旦我们添加了这个MouseButtonUp
状态,我就可以做如下的视觉转换:
或者: