问题标签 [visualtreehelper]

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 投票
0 回答
193 浏览

c# - 更改 Frame 中的所有文本颜色

我想以编程方式更改我的应用程序(wpf)中的所有文本,它在我的主窗口(BaseGrid)上的网格中工作:

但是当我为“myFrame”更改“BaseGrid”时,myFrame 中的文本没有被更改,我在其中加载页面。我希望能够以相同的方式更改 myFrame 中页面的颜色。

在这里需要一些帮助。

0 投票
3 回答
2548 浏览

c# - 如何添加选项以选择性地从 ComboBox 中删除项目?

我有一个ComboBox显示字符串的。如何添加从ComboBox列表中删除某些项目的选项?我试过:

但我不知道如何找到用户选择的项目:

我不介意在每个项目旁边放一些图标,单击时会删除其相关项目,但不知道该怎么做..

概括:

这就是我最终解决它的方法(信用属于Nawed Nabi Zada,谁提供了“攀登”的主要思想,在VisualTreeHelper.GetParent(...)接受ComboBoxItem的答案中,在下面

代码隐藏:

(从系统的 DLL 中获取图标的“图标提取器”来自我的一篇旧帖子)

0 投票
1 回答
914 浏览

c# - 尝试进入嵌套在数据模板中的按钮后面的代码

我有填充我的列表框的数据库,在下一步之前,我希望有机会使用工具按钮自定义用户选择。

所以我想在代码隐藏中获取有关他选择的信息。我在这个答案中找到了使用 VisualTreeHelper 的代码。

这是我的 xaml 代码

这是取自答案的方法:

我试着通过这条线找到我的孩子

然后我在这一行得到错误:

System.Windows.ni.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理”

我的错误是什么?我应该如何访问此按钮?

0 投票
3 回答
1123 浏览

c# - 如何找到 DataTemplate 生成的 UIElement

嗨,我尝试从 DataTemplate 中找到生成的 UIElement

但我无法找到应该在我的 ContentPresenter 中某处的 UserControl 我通过断点和 Snoop 查看了控件,但我找不到 UserControl

有人可以启发我在哪里可以找到它吗?

这是我的测试项目:

应用 XAML

看法

虚拟机

主窗口 XAML

代码隐藏

0 投票
1 回答
2082 浏览

c# - WPF visualtreehelper.getchildrencount 在数据网格上返回 0

我正在使用 32 行的数据网格,当我尝试使用这个 GetCell(28,2) 时它失败了,并且在第 28 - 32 行也有同样的问题。

这个: visualtreehelper.getchildrencount在第 28 行以上时返回 0。

我发现如果我向下滚动到数据网格上的那些隐藏行,我可以使用 GetCell() 获取这些行并且它工作正常。

我怎么能不滚下来呢?

0 投票
1 回答
1641 浏览

c# - 如何在没有 SelectedIndex 等的情况下获取 ListBox 项的索引(在 PreviewMouseDown 中,还没有“选择”任何内容)

如何实现GetListBoxItemIndex下面的函数来获取我点击的项目的索引?我尝试使用但VisualTreeHelper没有成功(意思是,VisualTreeHelper显然有效,但我没有通过树搜索获得任何结果......)

请注意,在此状态下尚未选择任何内容,因为它是一个PreviewMouseDown事件

0 投票
0 回答
593 浏览

c# - 从 ListBox wp8 中查找子元素

我正在尝试从 Listbox 中查找子元素。列表框包含Itemtemplate. 这是我的设计。我创建了UserControl. 在那我添加了ListBox。我将此控件显示为弹出窗口。这是弹出的代码

这里来自FilesListControl的代码

我想找到CheckBoxie chkFile。这是我的代码

但什么都没有。我做错了什么?如何访问CheckBox Click 事件?

0 投票
1 回答
1202 浏览

wpf - 带有 ScrollViewer 的 WPF ListView 大列表,VisualTree 元素未全部加载

我有一个 WPF 列表视图,如果列表很大,则 ScrollViewer 显示。ListView 包含带有复选框元素的项目。我们为用户提供全选和取消全选的能力。

我遇到的问题只是列表更大,这意味着我们看到元素的一个子集,用户需要使用滚动条来查看其余元素。我用于选择所有元素和取消选择所有元素的代码是使用 VisualTreeHelper 帮助器类将复选框的 IsChecked 属性设置为 true 或 false。但是它只适用于可见的元素。例如,如果我有一个包含 14 个复选框的集合,其中 10 个复选框在屏幕上可见,它只会选择可见的 10 个。但是,在单击全选之前,如果您向上和向下滚动并查看项目,则它会选择所有 14 个......所以看起来 VisualTree 只加载所需的元素。有没有办法强制它加载所有元素?

我可以通过禁用 ListView 上的 ScrollViewer 并用 ScrollViewer 包围它来使其工作。这是正确的方法吗?

前:

有效的解决方案:

请指教!

0 投票
1 回答
497 浏览

c# - wpf中组合框选择的奇怪行为

我正在开发一个应用程序,其中我们有一个主窗口,它在不同的停靠选项中有很多子窗口。因此,一个停靠栏有一个属性面板窗口,允许用户修改所选实体的属性,并且在更改值后,用户必须单击控件底部的应用按钮。所以,我愿意拥有某种功能,如果用户修改了一些值而不是点击应用,如果用户点击属性面板视图的子控件之外的其他地方,那么用户应该收到一条消息“请先点击申请以保存您的更改”。为此,我在 MainWindow 的鼠标按下事件中编写了以下代码。

因此,逻辑是这样的,在主窗口的鼠标按下时,获取命中对象并检查它是否是属性面板控件的子控件,那么它将 PropertyPanelUserControl 作为其父控件,而其他控件不是部分或子控件PropertyPanelUserControl,然后会提示用户单击应用。

上面的代码工作得很好......但我发现了一个奇怪的问题,我在属性面板中有一个组合框,其中包含从 1 到 10 的条目。因此,当用户尝试将值更改为其他值时,用户不会收到该消息,因为到目前为止,用户正在单击属性面板控件,并且当我在组合框中选择一个项目后检查鼠标按下事件中的命中对象时,命中对象是 chromeButton 或组合框。但是当我选择最后一项 10 时,命中对象作为具有属性面板控件的边框出现。

<Border><View:PropertyPanelControl/></Border>以上检查失败,因为边框没有祖先作为属性面板控件,而是边框是控件的祖先。因此,即使仅更改组合框值,用户也会收到一条消息,此外,我已确保我单击的组合框项目不在外部,所以,现在的问题是为什么 wpf 以这种奇怪的方式表现以及如何解决这个问题。

0 投票
0 回答
1146 浏览

c# - WPF 附加属性内容控件

我有一个附加属性来为我的 WPF 应用程序中的不同 uielements 提供上下文帮助。

附加属性设置为边框控件的子属性,该属性是用于提供上下文相关帮助的弹出控件的子属性。

问题是颜色前景颜色默认为随机事物,具体取决于附加属性所附加的 UIEelment。

猜测我认为这是因为内容属性正在使用附加控件的可视化树。

如何强制内容属性重新评估默认属性前景、字体等?

这是基于这篇文章: http: //www.codeproject.com/Articles/59535/A-Simple-Integrated-WPF-Help-System

最终可能是我派生的弹出类需要修复。我一直在寻找一种更好的方法来实现我的弹出窗口,但还没有找到。

所有有趣的代码都在下面找到。从弹出类开始。

感谢您的任何帮助。

附加属性在这里定义:

帮助窗口类管理各个帮助项: