问题标签 [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 投票
1 回答
735 浏览

wpf - 在 VisualState ColorAnimation 中引用画笔资源

我正在尝试设置日历控件的样式,并且需要按钮采用我们已经定义为命名资源的颜色。但是故事板需要 ColorAnimation 中的颜色,我不知道如何在那里使用画笔。

例如,我需要把这个

变成这样:

我该怎么做呢?

0 投票
3 回答
1917 浏览

wpf - 如何在加载元素时运行特定的 GoToStateAction-with-DataTrigger

我有一个数据模板。它有两种视觉状态——展开、折叠。我添加了 2 个 GoToStateAction-s。第一个在数据上下文属性变为 True 时进入 Expanded 状态,第二个在同一属性变为 False 时进入 Collapsed 状态。

Checkbox 是模板的一部分并绑定到该属性。因此,当复选框被选中/取消选中时,就会发生必要的转换。

但是在启动时没有应用任何操作。复选框已选中,但未应用展开的视觉状态。

是否可以使用可视状态管理器来加载所有项目并根据属性值应用状态?

0 投票
3 回答
675 浏览

wpf - 如何控制 VisualState 中 Storyboard 的 SpeedRatio?

给定由 VisualStateManager 作为 ControlTemplate 的一部分启动的 Storyboard,我将如何根据控件的属性更改调整该动画的 SpeedRatio?

这需要在 WPF 和 Silverlight 中都有效。

由于多种原因,我认为我不能在那里设置绑定。最重要的是,Storyboard 是可冻结的,因此您不能在 WPF 中随意设置 SpeedRatio。但是,如果它是由 VisualStateManager 启动的,我可以在它上面调用 SetSpeedRatio 吗?

此外,由于它的父级是 VisualState,这是否意味着没有与之相关的管理 FrameworkElement ?

那么,如果我不能用绑定来做到这一点,怎么能做到呢?

0 投票
1 回答
450 浏览

silverlight - 如何向按钮添加额外的可绑定视觉状态组?

我需要扩展一个按钮控件来添加一些额外的、可绑定的视觉状态。

我想要创建的是一个额外的布尔属性,要绑定到,它将在按钮上创建一个简单的视觉状态更改。对于这个例子,它可能只是一个额外的边框,根据布尔值改变颜色。

所有现有的按钮行为都应该与这组新的状态完全分开。

这可以做到吗?

0 投票
1 回答
455 浏览

silverlight - 传播 VisualState 更改的最佳方式

我目前面临一种情况,我不确定什么是最好的处理方式。

设想:

  1. ControlA 有 2 两个自定义视觉状态,我们称它们为“StateOn”和“StateOff”。
  2. 我现在在 ControlA 上应用一个模板,我们称之为“templateA”。
  3. “templateA”下面有一个 ControlB 类型的控件(他不知道 StateOn/Off)。
  4. ControlB 有一个 Template 来处理 ControlA 的视觉状态变化,即 StateOn 和 StateOff。

问题:
ControlB 没有收到对 ControlA 触发的 VisualStates 的更改,因此不会发生视觉更改。

我认为问题与作为控件(ControlB)的根元素有关,它不会在所需状态下触发 gotostate。但是,我想知道将 ControlA 的视觉状态更改传播到 ControlB 的最简单/最干净的方法是什么。

谢谢你的帮助!

亨利

Xaml:-

后面的代码:

0 投票
1 回答
442 浏览

silverlight - changing tooltip in visualstatemanager

i want to be able to change the tooltip on Checked and Unchecked, i tried:

but it doesnt seem to work, what am i doing wrong?

0 投票
1 回答
443 浏览

silverlight - GoToState 不适用于基于组合框的 controltemplated 用户控件

我正在尝试创建一个自定义组合框,当在其上设置 bool 属性(例如 IsLoading)时显示加载动画。

我在 Blend 中基于组合框创建了一个控件模板,并在切换按钮模板中添加了一个文本块。在后面的代码中,我调用了 VisualStateManager.GoToState 但它总是返回 false。我最初试图移动到自定义状态,但我什至无法移动到禁用或鼠标悬停等状态。

我有一个只包含一个组合框的用户控件,并且样式设置为包含控件模板的组合框样式。我认为 GoToState 失败是因为状态不在控件本身上,而是在组合框中。我怎样才能访问这个?

我不知道如何调试它,因为没有错误。

谢谢

0 投票
3 回答
5953 浏览

c# - 如何在 Silverlight 4 中等待状态更改转换完成?

我需要更改控件的状态,然后执行一些操作。具体来说,我想在隐藏控件之前运行动画。我想做这样的事情:

问题是过渡动画是异步运行的,因此在动画启动后控件会立即从视觉树中删除。

那么如何等待动画完成呢?

0 投票
1 回答
384 浏览

silverlight - 从互斥的 VisualStateGroups 动画相同的属性

我的问题很简单:有可能吗?

假设我想设置 a 的样式ListBoxItem,使其默认为黑色前景,选中时为蓝色,鼠标悬停时为红色。我最终得到了这样的结果:

问题是ListBoxItem该类已将选择状态正确放置在其自己的视觉状态组中,与鼠标悬停等常见状态分开。这意味着 aListBoxItem可以处于选中状态和鼠标悬停状态。

如果ListBoxItem选中并正确显示为蓝色,将鼠标悬停在它上面会将其恢复为黑色,因为它会转换回正常状态。

我有什么办法可以在不诉诸子类化ListBoxItem和添加我自己的自定义状态的情况下处理这个问题?我读过的所有内容都表明这是不可能的,但这对我来说似乎是可笑的限制。我错过了什么?

0 投票
3 回答
11122 浏览

wpf - 在按钮的控件模板中,如何设置包含文本的颜色?

使用 Silverlight 4 和 WPF 4,我试图创建一个按钮样式,当按钮被鼠标悬停时改变任何包含文本的文本颜色。由于我试图使其与 Silverlight 和 WPF 兼容,因此我正在使用可视状态管理器:

由于这是一个普通旧按钮的模板,我知道不能保证里面甚至有一个文本块,起初我不确定这是否可能。奇怪的是,如果按钮声明为:

如果按钮声明为:

即使可视化树(在 snoop 中检查时)是相同的(Button -> ContentPresenter -> TextBlock),但需要注意的是,在第一个版本中创建的文本块的数据上下文设置为“Hello, World”,而在第二个版本只是设置了它的 text 属性。我假设这与控件创建的顺序有关(第一个版本的按钮创建 TextBlock,在第二个版本中可能首先创建文本块?真的不确定)。

在研究这个的过程中,我看到了一些在 Silverlight 中工作的解决方案(比如用 ContentControl 替换 ContentPresenter),但在 WPF 中不起作用(程序实际上崩溃了)。

由于这是在按钮的控件模板中,并且如果可能的话我想使用 VSM,我认为这也排除了显式更改按钮自己的 Foreground 属性(我不知道如何从模板中访问它? )

我真的很感激任何帮助,任何人都可以提供的建议。