问题标签 [visual-tree]

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 回答
941 浏览

wpf - WPF 中的实际可见性

在 WPF 中,元素可以具有“可见性”的可见性,但实际上在屏幕上不可见,因为它的父级(或父级的父级)具有折叠的可见性。

我希望能够知道元素是否实际呈现在屏幕上,而不必遍历可视化树检查父级。

有谁知道实现这一目标的方法?

提前致谢!

0 投票
2 回答
282 浏览

silverlight - 设置自动生成的 ContentPresenter 的属性

考虑 Windows Phone SL 应用程序中可视化树的以下部分:

内容演示者

如您所见,PanoramaItem 模板包含对 static 的引用DataTemplateSelector。它是一个简单的类,它根据提供的 Key 动态地提供数据模板,为提供的不同视图模型显示不同的DataContext视图PanoramaItem。这是它的代码:

问题是我无法控制ContentPresenter您可以在上面的图像上看到选择的创建。为了获得一致的布局,我需要能够设置它的垂直对齐属性。我似乎不知道该怎么做,因为我无法引用 this ContentPresenter。如何设置 ContentPresenter 的属性?

0 投票
2 回答
1614 浏览

wpf - 获取 Window 的视觉内容

我目前有这行代码,我想在所有情况下都可以使用:

当 Window.Content 是 UIElement 时,此方法将起作用。但是,当它是一个非可视对象,然后应用了一个 DataTemplate 时呢?上面的代码行会抛出一个错误的强制转换异常。那么在这种情况下如何获取窗口的视觉内容呢?

编辑:起初我说 VisualTreeHelper.GetChild(window, 0) 返回 null,但它实际上是非 null。我的目的是通过将 visualWindowContent 传递给 AdornerLayer.GetAdornerLayer 来获取根装饰层。事实证明,当传递窗口的直接可视子节点时失败(返回 null),因为该节点在可视树中不够深,即 AdornerDectorator 的后代。

0 投票
4 回答
1018 浏览

c# - 视觉树 - 查找内容等于的标签(窗口上的任何位置)

我有许多标签作为许多不同堆栈面板的子级,它们都是列表框的子级,我需要引用其中一个标签是 Content.toString() == "criteria"。换句话说,在 WPF 中遍历可视化树会很痛苦,因为要运行许多父/子方法。有没有办法在我的窗口上找到这些标签中的一个而没有它的名字并假设我不知道它在树中“向下”多远?也许有一个窗口中所有东西的项目集合(没有层次结构),我可以运行一些 LINQ?

如果您想知道为什么我没有标签的名称 - 这是因为它们是由数据模板生成的。

非常感谢,

0 投票
2 回答
1090 浏览

c# - 以编程方式将 UserControl 从 ContentControl 移动到另一个

在 WPF 应用程序中,我想在代码中将 UserControl 从 ContentControl 移动到另一个:

在这种情况下,我得到一个错误:
指定的元素已经是另一个元素的逻辑子元素。先断开它。

ControlControl 类描述中,我可以看到一个RemoveVisualChild 方法,但是当我尝试在代码中使用它时,我得到一个未知方法错误

我哪里错了?
如何在代码隐藏中将 UserControl 从 ContentControl 移动到另一个?

0 投票
2 回答
386 浏览

wpf - 如何将 UIElement 在不同位置的可视化树中放置两次?

我想在 wp 应用程序中两次将网络浏览器放在网格中两次,但我得到了例外:元素已经是另一个元素的子元素。我怎么解决这个问题?PS:我需要两个浏览器同时显示,但我每次只需要与其中一个交互。

0 投票
1 回答
1037 浏览

c# - 如果在代码中添加了元素,“FindName”将不起作用

在 WPF 应用程序中,如果 ContentControl 在 XAML 中声明,

然后我可以使用以下代码轻松地在代码中引用它FindName

但是,如果我在代码中添加 ContentControl:

FindName没有找到它。

在第二种情况下有什么问题?有什么不同?

0 投票
0 回答
208 浏览

c# - 不同视觉树上的 ZIndex

我必须为TabControl. 这种设计使用了DropShadowEffect围绕该控件内容部分的边框。此阴影应与 TabControl 中未选择的那些元素重叠,但不应与所选项目重叠。

我的第一种方法是为未选择的项目定义 zIndex = 1、内容容器 = 2 和选定的项目 = 3。但不幸的是,这没有成功,因为内容和选项卡项目不在同一个面板。

有什么想法可以实现预期的目标吗?

WPF Inspector 可视化树截图:
在此处输入图像描述

我需要内容下方的一些 TabItems 和上方的一个..

0 投票
1 回答
7343 浏览

c# - wpf 强制构建可视化树

我有 ItemsControl 和 Grid 作为 ItemsPanelTemplate

我在代码隐藏中用这个 ItemControl 创建了一些 UserControl,然后我需要创建 RowDefinitions 和 ColumnDefinitons。我使用这种方法来获取“网格”:

但是,如果我在显示 UserControl 之前调用此方法,它将返回 null,因此我无法找到访问“网格”,并且当 UserControl 出现时,它的显示与我预期的不同。

我试图用谷歌搜索,但我发现的只是假设 VisualTree 不会为 ItemControl 构建,直到它显示在表单上。

有什么建议么?感谢和抱歉英语不好;)

0 投票
1 回答
225 浏览

windows-phone-7 - 如果弹出窗口位于 WP7 的 RootVisual 级别,我如何从可视树中获取弹出窗口

我需要在 VisualTree 中获得一个弹出窗口,它是 Application.Current.RootVisual 的兄弟。有没有办法做到这一点?

我暂时找不到解决方法。

我试图获得 RootVisual 的父级,但它没有这样的。

提前致谢