问题标签 [multidatatrigger]
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.
c# - 如何为 wpf 文本框编写逗号分隔的数字正则表达式验证
我正在开发一个WPF (.NET 3.5)
应用程序,我需要验证 atextbox
以regular expression
匹配空文本框或文本,如02145
or05145
或02145
、05879
、02445
。我使用的表达是^(0(2|5)[0-9]{3})?((,0(2|5)[0-9]{3})*?)$
。
它几乎可以工作,只是我不会让我有空的文本框。这是一些代码
用于验证的类如下
这很好用,但是除非我在 txtNumbers 文本框中输入一个或多个数字,否则提交按钮将不会处于活动状态。我只是希望它允许空文本框。我应该如何做到这一点?感谢阅读
wpf - 列表视图中的超链接前景样式未发生
我有一个让我发疯的问题,我似乎无法找到解决方案。
我有一个 Listview,其中 listivew ItemTemplate 是一个看起来像这样的数据模板:
超链接的样式如下:
当我按原样使用它时,它不会像选择项目时预期的那样将前景变为白色。如果该命令未按预期启用,它确实会将前景变为灰色。如果我删除 Selector.IsSelectionActive 的条件,它会在项目被选择时将前景变为白色,但如果项目被选中但未激活,它也是白色的......我希望非活动选择为绿色。我也只用一个平面文本块尝试过这个,一个具有非常基本样式的按钮......似乎没有任何效果。
列表视图位于另一个用户控件中使用的用户控件中。数据模板位于第二个用户控件的资源字典中,并绑定到类型为 DataTemplate 的第一个用户控件的依赖属性,并且超链接的样式位于单独的资源字典中。
任何帮助都感激不尽
wpf - WPF 样式取决于复选框状态
我正在创建一个设置编辑器,插件编写者可以在其中定义自己的用户界面来配置他们的插件。如果未选中复选框,我正在实现一个隐藏某些“高级”元素的功能。
XAML 复选框很简单:
理想情况下(稍后会详细介绍),实现者只需向高级控件添加一个标志(当未选中“高级”复选框时应隐藏该标志),如下所示:
问题在于制作隐藏IsAdvanced="True"
元素时的魔法isAdvanced.IsChecked == false
。我在窗口元素上使用这种样式具有所需的行为:
但是,这种方法存在两个问题:
- 它只为按钮添加功能,没有别的。该
IsAdvanced
标志可以(应该能够)添加到任何视觉元素。 - 它替换/覆盖按钮上的样式。
还有其他方法可以产生我想要的功能吗?我不害怕在代码隐藏中工作,但是一个优雅的 XAML 解决方案是理想的(因为这纯粹是一个 UI 更改,除了在用户的偏好中保存复选框的状态)。
其他一些表示高级元素的方法已经浮现在脑海中。其中包括使用动态资源和直接绑定:
使用资源字典可能会起作用,但这似乎是一个非常糟糕的解决方案,因为 UI 状态似乎不应该属于字典。手动绑定非常混乱,因为复选框的状态必须以某种方式发送到元素,除了硬编码值之外,我认为它不会变得一团糟。
这两种替代解决方案都将语义(“这是一个高级选项”)与外观(“高级选项应该折叠”)联系起来。来自 HTML 世界,我知道这是一件非常糟糕的事情,除非绝对必要,否则我拒绝接受这些方法。
wpf - 是否可以让弹出窗口忽略 WPF / Touch 应用程序中的 MenuDropAlignment?
作为背景知识 - Windows 有一个适用于触控/平板电脑的功能,它可以根据您的“惯用手”改变弹出窗口/菜单的位置(以防止菜单出现在您的手下)。
本质上,如果您设置为“右手”(一旦您连接了触摸设备,它似乎默认为),您打开的每个弹出窗口都会被人为地踢到左侧 - 这会导致我们尝试的大量布局问题并将弹出窗口与它“弹出”的项目对齐:
平板电脑设置设置为左手 - 没有来自 Windows 的人为校正
平板电脑设置设置为右手 - Windows 人为调整我们的定位
我们可以使用SystemParameters.MenuDropAlignment检测此设置的设置,对于琐碎的弹出窗口,我们可以使用弹出窗口的实际宽度进行调整 - 但对于动态弹出窗口以及当我们将右到左支持加入混合时,这只是没有不工作。
目前看起来更有可能我们将不得不遍历每个弹出窗口,手动计算出一个值来调整踢,并为每个弹出窗口添加类似的内容:
所以.. 回到问题 :-) 有没有人知道如何阻止 WPF 弹出窗口查看此设置?
对于那些没有触控设备的用户,您可以通过运行以下命令访问 Tablet PC 设置:
C:\Windows\explorer.exe 外壳:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}
看看它给自己造成的混乱:-)
c# - 将项目添加到 ListView 时,MultiDataTrigger 的 EnterActions 中的 ColorAnimation 未触发
我有一个将 AlternationCount 设置为 2 的 ListView。我有一个 ListViewItem 样式,该样式当前将 ListViewItem 的背景颜色设置为交替颜色,我想添加第三个触发器,该触发器触发 ColorAnimation 以在红色和白色之间为颜色设置动画绑定 ViewModel 的一个属性为真(在本例中为一个名为“Locked”的属性)。
我遇到了这篇文章,并尝试了底部的 xaml:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e7897cbd-71d9-45e6-9b17-0cd5bde5859f
但是,直到我将鼠标悬停或选择项目,然后选择或将鼠标悬停在不同的项目上,动画似乎不会触发我。我从前两个 MultiDataTriggers 中获得了交替的颜色,但是当项目添加到集合中时动画不会触发。这是我的 XAML:
wpf - 无法在样式中设置工具提示
我搜索并发现我无法直接在 setter.value 中设置工具提示(在 style.xaml 文件中)。但是我可以使用静态资源来设置工具提示。
我的问题是,因为我需要为工具提示提供动态文本,所以我不能使用静态资源。我该怎么做?
这是我的例子。
对于用法,我可以用作
wpf - HighlightBrushKey 设置在 Windows 7 中不起作用
我的资源字典中定义了以下样式:
当我使用 Windows XP 时,我得到的行为是我的渐变被用于突出显示和选择。现在我已经切换到使用 Windows 7,似乎不再使用渐变,突出显示/选择颜色现在是 VS 外观的浅蓝色。
关于为什么会发生这种情况以及如何解决这个问题的任何建议,以使其在 Windows XP 和 Windows 7 上运行相同(我们有一个多平台环境)
谢谢你。
评论后的完整解决方案
wpf - 在 WPF 中使用 DataTrigger
我TextBox
在 XAML 中定义了一个控件,我想TextBox
根据它的 IsReadOnly 或 IsEnabled 属性应用不同的背景颜色。我使用 dataTriggers 在颜色之间进行实际切换,如下所示:
TextBox 的定义如下图所示:
但问题是,颜色没有正确应用。
上述方法有什么问题吗?
c# - MultiDataTrigger 如何知道其 ConditionCollection 中的 Condition 何时更新?
我正在尝试使行为具有类似于 MultiDataTrigger 的 ConditionCollection。我查看了反映的代码,但我似乎无法理解 MultiDataTrigger 如何知道何时通过其逻辑来确定是否满足条件。
这是代码:
}
wpf - 使用 multiDataTrigger 时的 TextBlock 异常
我正在尝试将 2 个触发器添加到文本块的可见性属性。以下代码导致“TextBlock 异常”。知道为什么吗?