问题标签 [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.
wpf - ListBoxItem.Parent 什么也不返回,也无法通过 VisualTreeHelper.GetParent 得到它
如何提取 ListBoxItem 的父容器?在下面的示例中,我可以一直到 ListBoxItem,比我得到的更高:
更新
这就是发生的事情(请注意,“父”变量保持为空):
.net - 视觉树和逻辑树的概念
我理解Visual
和logical
树的概念,但我仍然无法理解这些的真正用途和需求。虽然没有必要了解这些树的所有信息,但我相信它会在一些高级场景中受益。
我已经阅读了以下文章并理解了这些概念
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
我想了解的是在框架内使用这些(用简单的话和易于理解的场景)?您究竟是如何确定何时使用视觉树或逻辑树的?任何其他有助于可视化这些树的信息?
silverlight - 如何将元素添加到 Silverlight 中的可视化树
这是我的具体问题:
xml:
ShrinkableContentControl 的代码:
这里的问题是,Shrinkable 是内容,并没有添加到可视化树中,所以什么都没有显示。
谁能告诉我是否有办法在可视化树中将 Shrinkable 添加为 ShrinkableContentControl 的子项?
谢谢,亨利
c# - WPF:如何在 Visual Tree 中查找单击的 3d 模型所在的 Model3DGroup?
我将一些 3D 模型显示为 Model3DGroups。它们被捕获 MouseDown 事件的 Viewport3D 包围。
我想确定单击了哪个 Model3DGroup(它们都有名称)。我从这个开始:
在达到 WriteLine 命令设置的断点后,我正在查看本地视图以找到正确的变量但找不到它。你能帮我找出我需要走哪条路来找到这个组,modelvisual3d属于吗?
这是树的屏幕截图:
wpf - 如何在不展开父节点的情况下访问内部 TreeViewItem 节点
我有一个绑定到自定义对象集合的 WPF TreeView - 每个对象都有一个 IsExpanded 属性来扩展容器 TreeViewItem。我希望能够以编程方式访问每个 TreeViewItem 的控件内容,而无需展开可视树中的父 TreeViewItem。但是,当我尝试在不扩展其父项的情况下访问所述项目时,它们似乎还没有被添加到可视化树中。有谁知道解决这个问题?
wpf - 在 Visual Tree 中移动 UIElement 而无需重新计算布局
我们有一个使用停靠控件(Actipro)的 WPF 应用程序(.Net 4.0)。我们可以停靠停靠窗口。在这种情况下,将创建一个“真实”窗口并将内容分配给该窗口。
当然,在可视化树中移动东西会重新触发完整的布局。这是有问题的,因为在这些停靠窗口之一中,我们有一个图表控件(Mindfusion Diagramming,WPF 控件),它可能需要长达 10 秒才能完全布局自身(非常大的图表)。
我认为这个问题没有任何直接的解决方案。然而,我想知道其他有类似问题的程序员是如何解决这个问题的。有什么巧妙的方法可以避免重新计算布局吗?
理论上,由于图表位于 ScrollViewer 内部,因此没有任何实际变化,因此无论何时放置它,可用空间量都保持不变(无限)。
编辑:还要注意里面的图表控件是交互式的。我们需要拖放。
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?
silverlight - Silverlight 和视觉树操作
现在这可能比它的价值更麻烦,但尽管如此,它现在对我来说真的很有用。
我想知道的是如何在运行时操作 Silverlight 可视化树。做一些简单的事情,比如添加和删除控件很容易,但是当你开始以任何合理的复杂程度遍历树时,我发现自己渴望使用 JQuery 样式语法(我想 LINQ 也很酷)来处理 DOM 节点替换,动作等。
所以我想问题是是否有任何图书馆可以让这项工作变得更容易,或者是否有一些我错过的东西?
silverlight - 帮助使用 Silverlight 中的可视化树
我有一个问题是如何使用可视化树助手来获取我需要的对象。我有一个名为 DialogItemControll 的用户控件,我从主页调用它,如下所示:
然后我有方法 ivSave_Click,当我单击用户控件上的保存按钮时会调用该方法。该方法如下所示:
在这里你可以看到我尝试使用 get parent 等等。做得不太好。所以我想要的是让整个对象像:
我的 DialogItemControll 看起来像这样:
C1 窗口和用户控件一样,只是一个第三方控件。请帮助我如何以一种好的方式使用树助手来获取整个对象。
谢谢
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 被选中时。
欣赏任何想法。提前致谢