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

c# - 尝试创建一种递归方法以分层顺序列出逻辑依赖项

我使用了VisualTree帮助程序来获取窗口中的所有视觉效果,但有时某些控件未在返回列表中列出。那是因为它们仍然没有被渲染,据我所知,VisualTree只有当控件已经被渲染时,枚举才会有所帮助。

现在我正在尝试编写一个简单的递归方法,它将在一个窗口中列出所有逻辑对象,以便我可以在它们被渲染之前对其进行操作。

所以这是我第一次尝试为逻辑树创建这样的东西:

0 投票
0 回答
326 浏览

c# - 视觉和逻辑树遍历不检索几个级别

我正在从同一个应用程序中探索逻辑树和可视树,但没有成功深入各个级别。

我的代码使用通用资源管理器:

ProcessLogicalTree并简单地迭代(在重新调用ProcessVisualTree之前做一些事情)。ProcessGenericTree

结果看起来很完整,但是当我尝试将 a 检索TextBlockGridViewColumnHeader 中时,看起来该项目既不存在于 Logical 中,也不存在于 Visual 的叶子列表中FrameworkElement

它似乎是一个视觉元素变成一个逻辑元素。事实上,添加一个手表,这TextBlock出现在我的Visual ChildrenGridView(检索为合乎逻辑,它处于Tab Item未选中状态),但我的代码并非无法获取它。

我的电话很简单:

其中 root 是主窗口。

那么,我怎样才能在最深层次上探索我的树呢?也许重新遍历检索到的FrameworkElement列表?我认为我的 ProcessGeneric 代码已经做到了。

更新:WPF Visualizer 显示了这种结构:

GridViewColumnHeader级别包含我TextBlock的,但视觉树不包含。

更新2:使用从主窗口开始的递归,我的元素可见我无法使用以下代码查找具有指定名称的对象:

我很确定VisualTreeHelper无法检索 Header 属性中的元素,但WPF Inspector工作正常。

我想知道它是否使用不同的方法来遍历树(也许也检查Properties类似的方法Header)。建议?

0 投票
2 回答
6406 浏览

wpf - 在WPF中获取鼠标下的逻辑UIElement

似乎所有在鼠标下检索元素的方式都与视觉命中测试有关。

是否有一些我缺少的机制可以让我获取UIElement代表返回的当前视觉树的实际HitTest值?

我在做什么的总结:

我有一个自定义工具提示类,它依赖于基于鼠标悬停的 UIElement 做一些事情。

简单地说,它挂钩到拥有窗口的PreviewMouseMove事件并更新一个“当前项目”。这个当前项目应该代表UIElement鼠标当前在上面的那个。

不幸的是,我遇到的所有Mouse.DirectlyOver, VisualTreeHelper.HitTest(包括回调)都不起作用。

任何人都可以提供有关如何在 WindowMouseMove事件中完成 WPF 中看似简单的任务的见解吗?

0 投票
1 回答
541 浏览

c# - 使用可视化树助手从 Windows Phone 中的网格获取特定的 UIElemet

我在 windows phone xaml 页面中有网格视图,这个网格包含许多 UI 元素,如按钮、复选框和文本框。我想从该网格中按名称搜索一些特定的 UIElement,并希望获取该 UIElement 的值并设置一些新值。我如何在后面的代码中使用 Visual Tree 助手从该网格中获取该 UIElement。

我想匹配选项。让我们说左侧一些图像被点击并且它的边框改变并且一旦在右侧点击哪个选项匹配左侧有一些选择或没有

0 投票
2 回答
4322 浏览

c# - Getting the index of the selected RadioButton in a group

I have got a reference to a RadioButton rb1.
How can I get the index of the selected RadioButton in rb1's group ?
I have googled for a while but without success.

Any help will be greatly appreciated

0 投票
1 回答
799 浏览

c# - How do I retrieve text from a textblock inside a listbox and display the text in a textbox?

How do I retrieve text from a textblock inside a listbox and display the text in a textbox?

What I want to do

First I want to be able to copy the text from the textblock inside the listbox

enter image description here

Then I want to display the text in the textbox

enter image description here

I tried using a visual tree helper but apparently it cannot find the 'FindName' method. Is there a better way to achieve this?

XAML Code

Code Behind

Binder Class

Message Class

0 投票
1 回答
2611 浏览

c# - 查找 LongListSelector Windows phone 的子控件

我试图找到LongListSelector. 这是我的用户界面

在这里我想找到TextBlock. ListHeader我使用此代码来查找控件。但没有得到任何东西。

我怎样才能找到TextBlockfrom ListHeader?我的代码有什么问题?

0 投票
1 回答
553 浏览

wpf - WPF 从 CustomControl 中删除/关闭/处置 CustomControl

我有一个CustomControl带有一些元素和一个Button. 我想CustomControl在单击时删除/关闭/处置Button。我试图在Button单击时获取元素的父级,但我得到的只是粉碎。

CustomControl的是TabItem,我想从 中删除它TabControl,所以为了得到它,TabControl我使用以下代码(它会崩溃):

TabControl parent = VisualTreeHelper.GetParent(this) as TabControl;

我究竟做错了什么?也许我的方法是错误的?TabItem如果是这样,单击时如何删除/关闭/处置Button

谢谢

0 投票
1 回答
517 浏览

wpf - 遍历 VisualTreeHelper.GetChild() 并在包含数据绑定的控件上调用 UpdateSource

我在 WPF 中有一个 ContentControl,其中包含一些输入控件,例如 TextBoxes 和 ComboBoxes。这些控件中的每一个都数据绑定到 ViewModel 中的给定属性,使用UpdateSourceTrigger=Explicit.

当我单击某个“提交”按钮时,我想遍历每个FormularioPaciente具有绑定的子项,并调用UpdateSource

0 投票
0 回答
228 浏览

c# - 如何找到 Listview / MVVM 的子项(Gridviewcolumn)

在一个行为(连接到 windows.interactivity)中,我试图找到一个 Listview 的子项 - 特别是 Gridviewcolumn - 以便能够调整其宽度,代码是使用 MVVM 构建的,没有代码隐藏。

问题很简单,使用 Gridviewcolumn 下面的代码没有找到,同时 Maingrid 的其他子项,fe 一个 Button 是没有问题的(参见下面的按钮示例)。

错误来自哪里的任何建议?提前致谢!