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

0 投票
1 回答
616 浏览

xaml - 当 bool 属性的值更改为 true 时触发 VisualState(更改为 false 时忽略)

我正在开发一个文本编辑器,它的 UI 将有两种状态:窄和宽。

Narrow 主要用于小于 720 像素的窗口大小,大于 720 像素时为宽。但是,此外,如果只打开一个文件,我希望使用窄 UI 状态而不管窗口大小(即,即使它 >= 720 像素)。

我有一个 bool 属性,可以记录是否打开了多个文件:

但是我没有成功将 VisualState 触发器链接到此属性的值,即如果为 true,则转到此状态,如果为 false,则转到下一个 VisualState。

任何关于如何通过 VisualState.StateTriggers 实现这一目标的指导将不胜感激。

--

正如 dotMorten 所建议的,我已经更改了属性设置器以引发 PropertyChanged 事件以及一个 int 属性:

理想情况下,我会让它在两种状态下工作:

但是,复合状态触发器似乎不起作用,所以我最终得到了 3 个状态:

0 投票
1 回答
1425 浏览

c# - UWP VisualState - 修改整个类(例如按钮)

在 UWP 中,我们可以使用 visualstate.setters 轻松更改按钮的属性,例如基于窗口大小

现在假设我有大量的按钮。而不是手动输入每个条目,btnA.Height..,BtnB.Height...等等,有没有办法在 custom.xaml 中输入它们?

我正在尝试类似的东西:

但是,当然,它不起作用。任何人都可以偶然提出一些建议吗?

0 投票
1 回答
713 浏览

c# - 故事板中的模板绑定 | ObjectAnimationUsingKeyFrames 不起作用

我有以下设置。问题是,如果我切换到VisualState“警报”,AlarmBrush则没有设置。我尝试了不同的“绑定”(见下文),但我只收到类似System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=AlarmBrush; DataItem=null; target element is 'DiscreteObjectKeyFrame' (HashCode=39320280); target property is 'Value' (type 'Object').

如果我用 ResourceKey 替换该值,那么一切都很好。但是我希望这个状态是动态的,所以静态资源是没有选择的。

基类

派生类

XAML 样式

xml

0 投票
1 回答
322 浏览

uwp - UWP - 动态更改按钮 VisualState

我正在尝试动态更改按钮按下背景。但我无法从后面的代码访问此属性。根据按钮的基本样式,我尝试获取 ControlTemplate(通过 TemplateProperty),但没有方法从中检索它包含的网格(RootGrid)。所以我试图让 VisualStateGroup 像这样:

但这会返回 null。

谢谢你的帮助。

塞缪尔

0 投票
1 回答
1557 浏览

xaml - 按钮 VisualState Focused 不起作用

单击按钮时,我正在尝试更改按钮的字体颜色。我尝试了很多不同的东西,但没有一个奏效。这是我尝试过的最新事情,我认为应该是答案,但它不起作用。有人可以帮忙吗?PointerOver 工作正常,但单击按钮时 Focused 没有做任何事情。

根据评论进行编辑:添加说明-我在发布此问题之前尝试使用 Pressed,但它并没有达到我想要的效果。单击后,我希望颜色保持应用,直到单击另一个按钮,然后单击的新按钮中的文本将更改颜色,单击的上一个按钮将返回默认颜色。按下后,只要松开鼠标按钮,文本就会恢复为默认值。

基于编辑的答案建议:还提供周围代码以查看是否在其他地方出现错误。

0 投票
1 回答
174 浏览

xaml - 防止 PointerOver 改变 Checked 按钮的文本颜色

我在尝试让一组单选按钮充当按钮时遇到问题,我的目标是让按钮的文本颜色在悬停时改变,并让它恢复到原始颜色并在点击时加粗。我在这里对以前的类似问题实施建议,我似乎做错了什么,因为我没有得到想要的行为。当我将鼠标悬停在按钮上时,PointerOver 仍在更改“已检查”按钮的文本颜色

0 投票
0 回答
23 浏览

c# - 有没有办法制作嵌套的视觉状态?也许通过从其他视觉状态继承?

我正在使用视觉状态作为导航方式制作嵌套/分层菜单。当在菜单中从左到右时,这非常有效。如果我单击主菜单 3,它会变为蓝色并弹出附加的子菜单,如果我单击子菜单 2,则相同。现在的问题是,如果我单击主菜单 1,子菜单 2 和子菜单 4 将保持“选中”(阅读:蓝色),尽管它们将从屏幕上移除。

我的菜单/子菜单是嵌套的,如下所示

我的想法是我想要一个更好的视觉状态结构。我想我需要以下内容:

  1. 一个未选择所有内容的基本状态

这里的想法是,每当我按下按钮时,它都会取消选择所有内容,并删除所有子菜单。(如果从更远的元素调用,则重新填充)。

  1. 5 种主菜单状态

理想情况下,这些应该自动继承基本状态,这样我就不能一次全部选择它们,而只能打开一个子菜单。

  1. 5 * x 子菜单状态

对于每个菜单项,我需要每个菜单项中每个子菜单的状态,理想情况下,这些状态将再次经历循环。取消选择所有内容,选择所选主菜单项,然后选择子菜单项,以及打开相应的子子菜单。

  1. 5 * x * x SubSub 菜单状态

你现在明白了,这些也应该取消选择所有内容,然后重新选择我以前的选择。

那么,有没有人知道如何解决这个问题,因为我猜这可能会变成 100 个州?是否至少有一种简单的方法可以使每个视觉状态都从其“父级”继承?

0 投票
1 回答
128 浏览

xaml - 我可以使用视觉状态更改对象的 Canvas.Zindex 吗?

如何使用视觉状态更改对象的 Canvas.Zindex?我期待能够做这样的事情..

但这不起作用。我还没有找到任何关于如何做到这一点的例子。有人可以帮忙吗?

0 投票
0 回答
59 浏览

c# - 使用 xaml 状态以编程方式更改窗口大小

我为程序的主窗口(大和小)创建了 2 个状态,并添加了一个带有 2 个选项卡项的选项卡控件。当我在 tab1 时,我想使用大状态来改变窗口的大小,而当我在 tab2 时,我想使用小状态来改变窗口的大小。我使用了以下代码,但无法更改窗口大小。

Changes 方法是tabcontrol 的SelectionChanged 事件。

我在这里找不到我做错了什么。

0 投票
1 回答
87 浏览

c# - 在记录状态时调整 wpf 窗口的大小会扭曲 wpf 组件

我想为 Visual Studio 记录混合状态,但是当我为某个状态调整窗口(网格和选项卡控件)的大小时,整个内容都会被扭曲。如果我不记录,那么它将表现正常。

在此处输入图像描述 形式的基本状态

在此处输入图像描述 这就是我调整大小时发生的情况

这是xaml代码

请帮忙。任何帮助将非常感激。