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

wpf - ListBoxItem.Parent 什么也不返回,也无法通过 VisualTreeHelper.GetParent 得到它

如何提取 ListBoxItem 的父容器?在下面的示例中,我可以一直到 ListBoxItem,比我得到的更高:



更新

这就是发生的事情(请注意,“父”变量保持为空):

这是它的样子

0 投票
0 回答
5917 浏览

.net - 视觉树和逻辑树的概念

我理解Visuallogical树的概念,但我仍然无法理解这些的真正用途和需求。虽然没有必要了解这些树的所有信息,但我相信它会在一些高级场景中受益。

我已经阅读了以下文章并理解了这些概念

http://www.codeproject.com/KB/WPF/WpfElementTrees.aspx

http://blogs.msdn.com/b/mikehillberg/archive/2008/05/23/of-logical-and-visual-trees-in-wpf.aspx

我想了解的是在框架内使用这些(用简单的话和易于理解的场景)?您究竟是如何确定何时使用视觉树或逻辑树的?任何其他有助于可视化这些树的信息?

0 投票
1 回答
735 浏览

silverlight - 如何将元素添加到 Silverlight 中的可视化树

这是我的具体问题:

xml:

ShrinkableContentControl 的代码:

这里的问题是,Shrinkable 是内容,并没有添加到可视化树中,所以什么都没有显示。

谁能告诉我是否有办法在可视化树中将 Shrinkable 添加为 ShrinkableContentControl 的子项?

谢谢,亨利

0 投票
2 回答
1355 浏览

c# - WPF:如何在 Visual Tree 中查找单击的 3d 模型所在的 Model3DGroup?

我将一些 3D 模型显示为 Model3DGroups。它们被捕获 MouseDown 事件的 Viewport3D 包围。

我想确定单击了哪个 Model3DGroup(它们都有名称)。我从这个开始:

在达到 WriteLine 命令设置的断点后,我正在查看本地视图以找到正确的变量但找不到它。你能帮我找出我需要走哪条路来找到这个组,modelvisual3d属于吗?

这是树的屏幕截图: 替代文字

0 投票
0 回答
198 浏览

wpf - 如何在不展开父节点的情况下访问内部 TreeViewItem 节点

我有一个绑定到自定义对象集合的 WPF TreeView - 每个对象都有一个 IsExpanded 属性来扩展容器 TreeViewItem。我希望能够以编程方式访问每个 TreeViewItem 的控件内容,而无需展开可视树中的父 TreeViewItem。但是,当我尝试在不扩展其父项的情况下访问所述项目时,它们似乎还没有被添加到可视化树中。有谁知道解决这个问题?

0 投票
3 回答
1180 浏览

wpf - 在 Visual Tree 中移动 UIElement 而无需重新计算布局

我们有一个使用停靠控件(Actipro)的 WPF 应用程序(.Net 4.0)。我们可以停靠停靠窗口。在这种情况下,将创建一个“真实”窗口并将内容分配给该窗口。

当然,在可视化树中移动东西会重新触发完整的布局。这是有问题的,因为在这些停靠窗口之一中,我们有一个图表控件(Mindfusion Diagramming,WPF 控件),它可能需要长达 10 秒才能完全布局自身(非常大的图表)。

我认为这个问题没有任何直接的解决方案。然而,我想知道其他有类似问题的程序员是如何解决这个问题的。有什么巧妙的方法可以避免重新计算布局吗?

理论上,由于图表位于 ScrollViewer 内部,因此没有任何实际变化,因此无论何时放置它,可用空间量都保持不变(无限)。

编辑:还要注意里面的图表控件是交互式的。我们需要拖放。

0 投票
1 回答
8745 浏览

wpf - Removing an item from the visual tree in a generic way

I would like to remove a FrameworkElement from the visual tree. Since the FrameworkElement has a Parent property, it would be obvious to solve this problem by removing it from there:

#xA;

The problem is that the Parent property of FrameworkElement is of DependencyObject, which has no notion of children. So the only thing I can see going about this problem is via casting the Parent to see if it's a Border, Panel etc (elements that have notion of children) and remove it from there:

#xA;

Obviously this is not a very flexible solution and not generic at all. Can someone suggest a more generic approach on removing an element from the visual tree?

0 投票
4 回答
3250 浏览

silverlight - Silverlight 和视觉树操作

现在这可能比它的价值更麻烦,但尽管如此,它现在对我来说真的很有用。

我想知道的是如何在运行时操作 Silverlight 可视化树。做一些简单的事情,比如添加和删除控件很容易,但是当你开始以任何合理的复杂程度遍历树时,我发现自己渴望使用 JQuery 样式语法(我想 LINQ 也很酷)来处理 DOM 节点替换,动作等。

所以我想问题是是否有任何图书馆可以让这项工作变得更容易,或者是否有一些我错过的东西?

0 投票
1 回答
856 浏览

silverlight - 帮助使用 Silverlight 中的可视化树

我有一个问题是如何使用可视化树助手来获取我需要的对象。我有一个名为 DialogItemControll 的用户控件,我从主页调用它,如下所示:

然后我有方法 ivSave_Click,当我单击用户控件上的保存按钮时会调用该方法。该方法如下所示:

在这里你可以看到我尝试使用 get parent 等等。做得不太好。所以我想要的是让整个对象像:

我的 DialogItemControll 看起来像这样:

C1 窗口和用户控件一样,只是一个第三方控件。请帮助我如何以一种好的方式使用树助手来获取整个对象。

谢谢

0 投票
1 回答
6076 浏览

wpf - WPF TabControl 子级

这是我当前的场景:我在 WPF 窗口中的单个 TabControl 上的不同 TabItems 中有几个 UserControls。就像是:

抱歉缩进。出于某种原因,我无法在此处正确缩进代码:(

我需要做的是确定(最好在TabControl.Load方法中,我的哪些不同的 UserControls 当前是可见的。我需要以动态方式执行此操作,我无法硬编码 TabItems 与其子项之间的关系,例如: if (TabControl.SelectedItem is XXXX)...不是在这里可能,因为这是一个动态 UI,我无法知道前面有哪些控件。

我一直在挖掘一点,发现TabItem控件没有出现在他们的“孩子”的视觉树中。我只看到 a ContentPresenter,然后是TabControl本身。看起来 tabItems 不“包含”它们自己的内容,所以我不能,例如,FindAncestor对 Tab Items 做一个。

另一个有趣的事实是Loaded我的用户控件事件在启动时被调用。无论它们是否在屏幕上可见。

一个理想的方案是找到一个仅在我的用户控件上触发的事件,当它们所在的 TabItem 被选中时。

欣赏任何想法。提前致谢