问题标签 [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.
c# - 在可视化树中查找 Canvas
我有一个 FlipView 控件,它的数据模板中有一个滚动查看器,然后有一个带有控件的画布。我的问题是我需要访问 FlipView.SelectionChanged 事件的事件处理程序内的画布。
FlipView 的 Xaml 如下所示。
用于解析可视化树的 C# 代码如下所示:
使用如下:
检查返回的列表,我可以找到 ScrollViewer,但找不到 Canvas。我还尝试将作为参数返回的滚动查看器提供给 AllChildren 函数,但我似乎仍然找不到 Canvas 控件。
我做这一切都错了吗?
c# - 获取 TreeView 逻辑元素的 TreeViewItem
我的树视图看起来像这样
在ArticlesTreeView.SelectedItem
存储类的实例NewsPaperDocument, NewsPaperPage, etc
。我怎样才能获得TreeViewItem
关联SelectedItem
?我尝试使用VisualTreeHelper.GetParent(elem);
,但SelectedItem
没有类型DependencyObject
UPD1添加简单示例,演示问题。item
在ArticlesTreeView_SelectedItemChanged
总是null
XAML
CS
c# - 首次加载页面时未显示 VisualElements
我正在尝试在加载我的页面后更新我的所有文本框元素。
问题
为什么第一次加载时没有返回文本框?
解释
我有一个带有 Frame 元素的 MainWindow,可以在 wpf 页面之间导航。
因此,当用户单击菜单项时,页面会加载到框架中。
以下是用户单击 MenuItem 时的代码:
将新页面加载到框架中的代码(方法导航)
FindVisualChildren 方法
问题
用户第一次加载此页面时,它将 int 数量返回为 0,当第二次单击时,我返回了所有 19 个文本框。这是为什么?当我调试它并展开我的页面时,我可以看到那里的文本框
wpf - 如何在 TreeviewItem 中获取子控件?
我将我的 TreeViewItem 定制为StackPanel
withimage
和textblock
inside;我想得到TextBlock
内部的参考。因为下面的代码node
是类型的TreeviewItem
,我相信childrenCound =3
它可能是StackPanel image textblock
!但它在里面找不到任何TextBlock
东西。我从来没有看到任何控制台输出和object _itemToMove
返回null
c# - 使用 VisualTreeHelper 选择 ImageBrush
我正在尝试从 LongListSelector 中选择 ImageBrush 项目。由于 ImageBrushes 在 DataTemplate 中,我使用 VisualTreeHelper 选择它们。
我的示例 xaml 代码:
我用于选择 ImageBrushes 的示例 C# 代码是:
但在这里我没有得到所有的图像刷。让,我有十个图像刷。但是我只得到了两个(大部分时间是第一个和最后一个)有源的图像刷,而其他人的源是空的。
是不是我的选择有问题。需要帮忙...
c# - 在调用加载事件之前查找可视父级
UIElement
在触发加载事件之前,WPF 中是否可以找到对象 ( ) 的可视父级?如果我在加载的事件中搜索特定的父级,则一切正常。如果我之后在构造函数中搜索特定的父级LoadComponent
,它就不起作用。还是我必须使用逻辑树?
我使用VisualTreeHelper
搜索。
谢谢
wpf - 在 WPF 中查找控件有时有效,有时无效。为什么?
我有一个数据网格,每个列标题中都有一个按钮。这是 XAML:
有些列需要隐藏按钮,因为它们不应该是可排序的。我写了这个方法来找到按钮。我在那里放了额外的代码,这样我就可以看到找到了什么按钮以及它的标签值。
还有一种隐藏/显示按钮的方法:
现在,当第一次加载网格时,我调用 SetStaticColumn("Ex", True) 并且按钮不会出现在 Ex 列中(它有效)。调试看起来像这样:
但是当重新加载网格以显示更新的数据时,Ex 列中的按钮再次可见(它不起作用)。调试显示:
所以看起来按钮此时没有标签值,所以没有找到。绑定什么时候发生?我尝试在设置 DataGrid.ItemsSource 后调用该方法,也在 DataGrid.Loaded 事件处理程序中,也在 DataGrid.AutoGeneratingColumn 事件处理程序中。重新加载后使按钮消失的唯一方法是创建一个调用该方法的按钮,然后在重新加载网格后单击该按钮。在这一点上我很困惑。
任何建议表示赞赏。
c# - 视觉树中的媒体元素在 8.1 商店应用程序中不显示视频,只显示音频
我有一个要在 8.1 Windows 商店应用程序中播放的视频,并且想在导航到其他页面后继续播放音频.. 我使用 visualTreeHelper 做到了,所以我在 app.xaml 中声明了一个媒体元素并将其添加到 app.xaml.cs 的框架中,并在 playPage 中获取。问题是媒体元素控件只播放音频,我看不到视频..导航后音频继续播放,但在播放页面中看不到视频(只有音频):所以这就是我输入的标准样式.xaml:
这在 app.xaml.cs
在playPage.xaml 我添加MediaElement Control:
并在其背后的代码中:
当我在导航后不尝试让音频工作时一切正常,所以当我不使用视觉树助手但在这种情况下音频按预期工作但在播放页面中看不到视频(只有音频)