问题标签 [visualstatemanager]

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 回答
1837 浏览

silverlight - MVVM 视觉状态管理器和焦点

使用 Silverlight 4。

我有两种视觉状态可供控制。当状态发生变化时,我想将焦点从一个文本框更改为另一个文本框。

使用 MVVM 执行此操作的最佳方法是什么?

我希望使用visualstatemanager来做它或行为......但我还没有想出办法。

0 投票
1 回答
1333 浏览

silverlight - 我可以在 XAML 中引用 Storyboard 资源并定义视觉状态吗?

我有六个不同的对象,它们都有自己的视觉状态管理器。每个对象的 Focused 状态是相同的。我想定义一个 Focused State Storyboard 资源并在 6 个 Focus Visual 状态中的每一个中引用它。这可以做到吗?这是我的代码(都在同一个 UserControl.Resources 中):

在我的 6 个对象中的每一个中,我都有以下内容:

当我运行该项目时,我收到以下错误:

消息:属性 {StaticResource FocusedState} 值超出范围。

0 投票
2 回答
729 浏览

silverlight - Silverlight 中的 VisualState 继承

我正在编写一个从 a 继承的控件,RadioButton并且没有做任何比显示图像和隐藏默认圆圈更壮观的事情。

我无法找到的一件事是我是否必须VisualStates在我的 ControlTemplate 中重新实现所有内容,或者我可以简单地将它们作为一个空元素并将它们继承?

我的 XAML 在下面,原来的 RadioButton 在 MSDN 上

0 投票
1 回答
892 浏览

wpf - 带有动画的 MVVM(我应该使用 VisualStateManager 吗?)

我在资源部分有一个 View.xaml,其中包含以下设置:

在 View.xaml 的内容中,我有:

当 SelectedMyViewModel 发生变化时,我想要一个动画,以便当前视图淡出并且新视图淡入......

不知何故,我觉得这应该可以通过 VisualStateManager 实现——但我不知道怎么做!

这是一个 WPF 4.0 项目...

0 投票
1 回答
1232 浏览

wpf - WPF:VisualStateManager 不工作

我试图弄清楚 VisualStateManager 是如何工作的,但我做不到。

我想这样做:我有一些文本框,用户可以在其中输入他的姓名、地址……我正在进行验证,我不想在 XAML 中使用验证规则绑定来做到这一点。我正在使用 MVVM 模式,我的视图模型的一些代码可以做到这一点。因此,我将文本框的文本绑定到视图模型为我验证的字符串,并且我在那里有一个布尔变量来判断它是否正确。

我的 XAML:

当用户的焦点离开文本框时,将发生此事件:

我试过了,状态没有改变,尽管事件发生了,它转到了正确的 GoToState-Method。什么都没发生。

我也试过
ExtendedVisualStateManager.GoToElementState(this.Border1 as FrameworkElement, "NameValid", false);

因为我在这里读到它会有所帮助,但它是一样的......

我做错了什么??

0 投票
2 回答
2478 浏览

wpf - 从 WPF 中的数据绑定枚举设置视觉状态

大家好,我有一个场景,我想切换 4 个不同内容控件的可见性。我设置了不透明度的视觉状态,并根据每个给定的状态折叠(参见代码。)我想做的是将视觉状态绑定到我的 Enum 类型的视图模型的属性。我尝试使用 DataStateBehavior,但它需要 true/false,这对我不起作用。所以我尝试了 DataStateSwitchBehavior,据我所知,它似乎完全被 WPF4 破坏了。有没有更好的方法来做到这一点?如果需要,我真的对不同的方法持开放态度,但我真的很想将这个枚举保留在等式中。

编辑:

代码不应该太重要,我只需要知道这个问题是否有众所周知的解决方案。

0 投票
1 回答
436 浏览

silverlight - 基于计时器事件在 Blend 4 VisualStateManager 中旋转状态?

我正在 Blend 中构建一个 Silverlight 4 UserControl,它具有三个 VisualStates。

我想让状态在几秒钟的延迟后从第一个状态变为第二个状态,再过几秒钟后从第二个变为第三个,在另一个延迟后从第三个变为第一个,然后继续像这样旋转。

本质上,这是一个非常原始的“广告轮播”,使用一些静态图像作为我正在构建的原型。

是否可以使用 Blend 来做到这一点?如果是这样,怎么做?我可以使用 TimerTriggers 和 ActivateStateAction 行为来创建第一个完整旋转,但我不确定如何重置计时器,或者其他方法是否会更好。

0 投票
1 回答
1169 浏览

silverlight - VisualStateGroup Triggering Animation in Another VisualStateGroup

There's something fundamental about VisualStateGroups that I'm not understanding. Everything I've read has led me to believe that they are orthogonal. That is, a state change in one group won't affect other groups. Indeed, they would be rather pointless if this were not the case.

However, in an attempt to understand some odd behavior I was encountering, I put together a simple example that shows that a state change in one group can trigger an animation in another. I'm trying to understand how this can be.

All I want is a ToggleButton-based control to have one appearance when toggled (IsChecked == true) regardless of whether it has focus or whether the mouse is over it, for example.

Firstly, I have a very simple control that transitions between custom states in a custom group:

Secondly, I have a template for this control that changes the background color based on the current state:

For the most part it works, but when the control loses focus it transitions back to the normal state.

I can get around this by explicitly handling focus changes in my control and enacting a state update:

However, it makes no sense to me why I have to do this.

Why is a state change in one VisualStateGroup causing an animation defined by another to execute? And what is the simplest, most correct way for me to achieve my stated goal?

Thanks

0 投票
1 回答
122 浏览

silverlight - 规定在给定视觉状态下花费的最少时间

我想确保控件在最短的时间内保持某种状态。该控件有两种状态:LoadingLoadedLoading状态显示动画,状态Loaded显示数据。两种状态之间存在淡入/淡出过渡。

但是,问题有时是数据加载速度过快,以至于动画在屏幕上瞬间闪烁,然后立即淡出。Loading这看起来很糟糕,所以我想做的是强制在该州花费最少的时间(例如半秒) 。这样,即使数据加载速度很快,加载动画至少会显示足够长的时间而不会产生不和谐的效果。

我已经设法通过VisualStateManager我想象中称为的自定义来实现这一点MinimumTimeVisualStateManager。但是,我想知道是否有一种内置方法可以在不需要这些额外代码的情况下实现我想要的。

谢谢

0 投票
1 回答
1030 浏览

silverlight - 在 VisualState 中修改 Silverlight 资源

我想知道是否有一种简单的方法可以修改不同 VisualStates 之间控件的某种共享资源(即画笔)。例如,我想定义一个画笔作为边框的背景和不同矩形的填充。在不同的 VisualState 中,我想在一个地方(资源)更改此背景画笔,并将其反映在使用该资源的所有元素中。

我不确定是否真的可以通过名称(而不是键)为 VisualState 中情节提要的 TargetName 引用资源。

这是我在 XAML 中尝试做的一个简化示例:

我有一种感觉,因为这些是 Silverlight 中的静态资源,它们只加载一次并且无法更改。我知道 WPF 有一些动态资源的概念。有什么方法可以在 Silverlight 中实现这种类型的行为,而无需在所有元素中重新定义我的画笔?