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

xaml - 是否可以为一个元素设置两个样式模板并决定在后面的代码中使用哪一个?

我有一个在模式 A 中具有样式模板的按钮。在模式 A 中,此按钮具有 PointerOver VisualState。当我处于模式 B 时,我使用相同的按钮,但在模式 B 中,我希望有一个不同的 PointerOver VisualState。

利用视觉状态完成这样的事情的最佳方法是什么?我正在考虑为同一个按钮设置两个不同的样式模板,并以某种方式更改要在后面的代码中使用的样式模板,但不确定这是否可行,或者这是否是解决此问题的最佳方法。

有什么建议么?

0 投票
2 回答
741 浏览

wpf - 在视觉状态下更改标签前景色

我尝试创建具有标签和文本框的用户控件。我希望我的控件有自定义的视觉状态集。所以我在 xaml 中编写了这段代码:

在我的 UserControl 类中:

所以我很尊重,当我专注于控件的文本框元素时,标签的视觉状态会发生变化,前景色会发生变化。但它不会发生。

0 投票
1 回答
231 浏览

wpf - WPF X:名称导致类型名称“ViewModel”编译错误

我打算从一个按钮设置 CalibrationGridControl 的状态。为此,CalibrationGridControl UserControl 必须具有 ax:Name (当我设置 GoToState 行为时,Blend 甚至为我添加了一个。问题是,只要我添加 x:Name="calibrationGridControl" 我就会收到以下编译错误。

错误 CS0426 类型名称“ViewModel”不存在于类型“TeachpendantControl”TeachPendantControl C:\GitRepos\SolutionName\TheWPFControl\Views\HandeyeCalibration\HandeyeCalibrationView.xaml 150 38 构建活动编译器

下面的 UserControl HandeyeCalibrationView 是要在“TheWPFControl”中的 ContentControl 内显示的视图。WPFControl 和 HandyeCalibration.xaml 都在同一个项目(一个 WPF 控件库)中。下面是我收到错误的 HandeyeCalibration.xaml 文件的基本部分。

如果我只删除 x:Name="calibrationGridControl" 行,一切都编译得很好。什么可能是错的,导致这个奇怪的错误信息?

我有一些关于 CalibrationGridControl 的问题。如果我只是在将 x:Name 添加到另一个用户控件时删除它,那么一切都会编译。CalibrationGridControl 的 XAML 如下所示。

0 投票
2 回答
215 浏览

xaml - 绑定到 ElementName 取决于绑定顺序

我创建了简单StateTrigger的绑定到FrameworkElement Width属性。存在三个依赖属性MinValueMaxValueElement。它们的类型是doubledouble并且FrameworkElement相应地。

而且我注意到,根据绑定顺序,它可能会或可能不会起作用。

这工作正常。

这不是。

请注意,这两个示例的唯一区别是Element属性绑定顺序。

ElementWidthTrigger每个依赖属性都有属性更改回调。当Element在最顶端时,无论如何都不会调用回调。

x:Bind无论使用什么顺序都可以解决这个问题,但仍然存在一个问题。谁能解释为什么Element属性无法根据绑定顺序绑定?

在 Windows 10 1803 版本 17134.320 上运行。

工作示例项目可以在这里找到。

0 投票
1 回答
175 浏览

c# - uwp 获取自定义媒体控件中视觉状态更改的通知

在我的 uwp 应用程序中,我有自定义媒体传输控件,我想在我的控件出现和从屏幕上消失时得到通知,这样我就可以匹配光标的出现和消失。

这是我迄今为止尝试过的:

从我的控件风格的generic.xaml中,我发现遵循VisualStateGroup控制控件的淡入和淡出。

所以我想我应该在我的OnApplyTemplate方法中获取这个组,然后将状态更改事件分配给它。

我把它全部连接起来,并且在页面上完成了进一步的逻辑,这在这种情况下是无关紧要的。我用断点调试,发现ControlsFade_CurrentStateChanged永远不会触发。

0 投票
2 回答
54 浏览

c# - 我如何知道 WPF 的 XAML 中已经定义了哪个 VisualState 控件?

我如何知道 XAML 中已经定义了哪个 VisualState 控件?

例如,WPF Button 控件默认有 2 个 VisualStateGroup。它们是“CommonStates”和“FocusStates”。“CommonStates”包含 4 个 VisualState:“Normal”、“MouseOver”、“Pressed”、“Disabled”。这些状态已经有默认处理程序,因此当鼠标悬停或按下时,Button 的 VisualState 会相应更改。感谢您的阅读!

0 投票
1 回答
39 浏览

button - 为什么在我的按钮样式中添加带有圆角半径的边框会消除视觉状态?

当我在我的样式中添加一个带有圆角半径的边框时,它会使 VisualState PointerOver 和 VisualState Pressed 停止工作。

我尝试在 IDE 允许的几个地方插入边框,但每次我得到相同的结果:没有指针悬停或按下效果。我有另一种没有边框/角半径的相同样式,它可以工作。

没有错误消息并且 IDE 通过 XAML,它只是禁用了 VisualStates。

0 投票
1 回答
278 浏览

xaml - UWP VisualStateManager PointerOver 不起作用

我正在模仿 Groove Music 的行为,当鼠标悬停在专辑封面上时会显示阴影效果(在我的代码中,它是整个 DataTemplate)。但我的 VisualStateManager 似乎不起作用。有任何想法吗?我已经以编程方式实现了该功能,但我想使用 xaml 来进行练习。

- -更新 - -

将 Stackpanel 更改为 Grid 仍然无法正常工作。

0 投票
1 回答
138 浏览

c# - 如何在 uwp 中使用 window IsActive="False" 状态触发器?

在 wpf 中它看起来像这样:

0 投票
1 回答
170 浏览

c# - 管理按钮中的新视觉状态

我想向 WPF 按钮添加一个新的“已激活”状态,并且我想避免从头开始重新创建控件。

这个新状态与IsActivated依赖属性相关联,并且必须更改 Button 的背景颜色。IsEnabled这是和IsActivated依赖属性之间交互的真值表:

IsActivated 和 IsEnabled 之间关系的真值表

我编写了一个从 Button 扩展的类,创建了依赖属性,并在 的回调中IsActivated计算了按钮的视觉状态。

问题是 ButtonBase 类型已经通过ChangeVisualState 函数管理视觉状态,该函数不能被覆盖。

在管理两个依赖属性的回调之后,和之间的交互IsActivatedIsEnabled预期工作,但是单击按钮或将鼠标放在按钮上会覆盖Activated视觉状态。

这是否可以通过视觉状态来完成,或者我应该使用简单的触发器?

到目前为止的控制代码:

按钮的默认样式: