问题标签 [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 回答
454 浏览

c# - 在可视化树中查找 Canvas

我有一个 FlipView 控件,它的数据模板中有一个滚动查看器,然后有一个带有控件的画布。我的问题是我需要访问 FlipView.SelectionChanged 事件的事件处理程序内的画布。

FlipView 的 Xaml 如下所示。

用于解析可视化树的 C# 代码如下所示:

使用如下:

检查返回的列表,我可以找到 ScrollViewer,但找不到 Canvas。我还尝试将作为参数返回的滚动查看器提供给 AllChildren 函数,但我似乎仍然找不到 Canvas 控件。

我做这一切都错了吗?

0 投票
1 回答
3699 浏览

c# - 获取 TreeView 逻辑元素的 TreeViewItem

我的树视图看起来像这样

ArticlesTreeView.SelectedItem存储类的实例NewsPaperDocument, NewsPaperPage, etc。我怎样才能获得TreeViewItem关联SelectedItem?我尝试使用VisualTreeHelper.GetParent(elem);,但SelectedItem没有类型DependencyObject

UPD1添加简单示例,演示问题。itemArticlesTreeView_SelectedItemChanged总是null

XAML

CS

0 投票
1 回答
105 浏览

c# - 首次加载页面时未显示 VisualElements



我正在尝试在加载我的页面后更新我的所有文本框元素。

问题

为什么第一次加载时没有返回文本框?

解释

我有一个带有 Frame 元素的 MainWindow,可以在 wpf 页面之间导航。
因此,当用户单击菜单项时,页面会加载到框架中。
以下是用户单击 MenuItem 时的代码:

将新页面加载到框架中的代码(方法导航)

FindVisualChildren 方法

问题

用户第一次加载此页面时,它将 int 数量返回为 0,当第二次单击时,我返回了所有 19 个文本框。这是为什么?当我调试它并展开我的页面时,我可以看到那里的文本框

0 投票
3 回答
833 浏览

c# - 如何在 XAML 中访问我的 ListBox 的 DataTemplate(但不是绑定)内的 TextBlock?

XAML

以上是我的列表框,它是在此帮助下从后面的代码中填充的:

C#

我尝试过使用 VisualTreeHelper 和其他扩展方法,可以在这里找到:

极客冠军

沙拉三明治博客

但我没有成功。我几乎已经放弃了这个。有没有人有任何想法可以做什么。谢谢你。

在此处输入图像描述

如您所见 - 我可以成功获取媒体队列,但我想在“SelectedItem”的左侧显示一个视觉提示,如 TextBlock 中的播放字符 - tbActive。希望这可以帮助!

0 投票
2 回答
1740 浏览

wpf - 如何在 TreeviewItem 中获取子控件?

我将我的 TreeViewItem 定制为StackPanelwithimagetextblockinside;我想得到TextBlock内部的参考。因为下面的代码node是类型的TreeviewItem,我相信childrenCound =3它可能是StackPanel image textblock!但它在里面找不到任何TextBlock东西。我从来没有看到任何控制台输出和object _itemToMove返回null

0 投票
0 回答
69 浏览

c# - 使用 VisualTreeHelper 选择 ImageBrush

我正在尝试从 LongListSelector 中选择 ImageBrush 项目。由于 ImageBrushes 在 DataTemplate 中,我使用 VisualTreeHelper 选择它们。

我的示例 xaml 代码:

我用于选择 ImageBrushes 的示例 C# 代码是:

但在这里我没有得到所有的图像刷。让,我有十个图像刷。但是我只得到了两个(大部分时间是第一个和最后一个)有源的图像刷,而其他人的源是空的。

是不是我的选择有问题。需要帮忙...

0 投票
1 回答
295 浏览

c# - 在调用加载事件之前查找可视父级

UIElement在触发加载事件之前,WPF 中是否可以找到对象 ( ) 的可视父级?如果我在加载的事件中搜索特定的父级,则一切正常。如果我之后在构造函数中搜索特定的父级LoadComponent,它就不起作用。还是我必须使用逻辑树?

我使用VisualTreeHelper搜索。

谢谢

0 投票
1 回答
6784 浏览

c# - WPF使用VisualTreeHelper垂直和水平查找元素

在可视化树中垂直和水平搜索最简单的方法是什么?

例如,我想从控件中找到不在父列表中的控件,从而开始搜索。

这是一个简单的示例(每个框代表一些 UI 控件):

视觉树

例如,我从一个嵌套控件(Search-Start)开始,并希望找到另一个嵌套控件(应该找到)。

做这个的最好方式是什么?解析完整的视觉树似乎不是很有效...谢谢!

0 投票
0 回答
46 浏览

wpf - 在 WPF 中查找控件有时有效,有时无效。为什么?

我有一个数据网格,每个列标题中都有一个按钮。这是 XAML:

有些列需要隐藏按钮,因为它们不应该是可排序的。我写了这个方法来找到按钮。我在那里放了额外的代码,这样我就可以看到找到了什么按钮以及它的标签值。

还有一种隐藏/显示按钮的方法:

现在,当第一次加载网格时,我调用 SetStaticColumn("Ex", True) 并且按钮不会出现在 Ex 列中(它有效)。调试看起来像这样:

但是当重新加载网格以显示更新的数据时,Ex 列中的按钮再次可见(它不起作用)。调试显示:

所以看起来按钮此时没有标签值,所以没有找到。绑定什么时候发生?我尝试在设置 DataGrid.ItemsSource 后调用该方法,也在 DataGrid.Loaded 事件处理程序中,也在 DataGrid.AutoGeneratingColumn 事件处理程序中。重新加载后使按钮消失的唯一方法是创建一个调用该方法的按钮,然后在重新加载网格后单击该按钮。在这一点上我很困惑。

任何建议表示赞赏。

0 投票
1 回答
90 浏览

c# - 视觉树中的媒体元素在 8.1 商店应用程序中不显示视频,只显示音频

我有一个要在 8.1 Windows 商店应用程序中播放的视频,并且想在导航到其他页面后继续播放音频.. 我使用 visualTreeHelper 做到了,所以我在 app.xaml 中声明了一个媒体元素并将其添加到 app.xaml.cs 的框架中,并在 playPage 中获取。问题是媒体元素控件只播放音频,我看不到视频..导航后音频继续播放,但在播放页面中看不到视频(只有音频):所以这就是我输入的标准样式.xaml:

这在 app.xaml.cs

在playPage.xaml 我添加MediaElement Control:

并在其背后的代码中:

当我在导航后不尝试让音频工作时一切正常,所以当我不使用视觉树助手但在这种情况下音频按预期工作但在播放页面中看不到视频(只有音频)