问题标签 [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 - WPF 获取鼠标下的元素
WPF 有没有办法在 MouseMove 事件上获取鼠标下的元素数组?
wpf - 绑定元素名称。它使用可视树还是逻辑树
有了{Binding ElementName=foo}
,它会查找视觉树还是逻辑树?
逻辑树何时重要?
在查找名称时,例如在 {Binding ElementName=Foo} 中,搜索会沿着祖先查找名称范围,就像它对可继承属性所做的那样。
通过附加行为在 Silverlight 中绑定 ElementName
为了实现这一点,WPF 提供了 ElementName 和 RelativeSource 绑定,为您提供了一种强大的机制来定位可视树中的其他元素以绑定到
编辑:
它看起来像用于绑定的逻辑树ElementName
。
论据#1。
根据 MSDN 文章FrameworkElement 类:
FrameworkElement 扩展了 UIElement 并添加了以下功能:
- 对数据绑定和动态资源引用的支持:对数据绑定和资源的属性级支持由 DependencyProperty 类实现并体现在属性系统中,但能够解析存储为表达式的成员值(编程构造作为数据绑定和动态资源的基础)由 FrameworkElement 实现。有关详细信息,请参阅数据绑定概述和资源概述。
论点#2。
ElementName
指向x:Name
,所以应该如何找到这个名称。有一个NameScope概念。
对于大多数情况,在 FrameworkElement 和 FrameworkContentElement 上公开的 FindName 方法是更适合调用以按名称搜索元素的方法。FrameworkElement 和 FrameworkContentElement 公开的 Name 属性更适合用于将初始名称设置为标记属性。并且在 FrameworkElement 和 FrameworkContentElement 上公开的 RegisterName 方法对于在特定名称范围内建立名称是必要的(没有 NameScope 成员可以直接执行此操作;您必须先设置当前名称范围才能使用 RegisterName)。
另一方面,Visual 类既没有FindName
方法,也没有实现INameScope。
wpf - WPF - 获取可视化树的快速方法
我在网格中动态添加一些控件。我不知道有多少,也不知道确切的层次结构。我想要做的是访问一些具有特定类型的控件(例如按钮)并实例化一些属性。做这个的最好方式是什么?
wpf - 有没有办法在可视化树中移动控件?(WPF)
我想将一些控件从视觉树中的一个部分重新定位到另一个部分。
- 我可以这样做吗?
- 以及如何做的方向或提示?
wpf - 遍历 Model3DGroup 树
我有一个复杂的 3D 场景,其中包含我需要在运行时分析的 Model3DGroups。由于Model3D
节点既不参与 VisualTree 也不参与 LogicalTree 有没有其他方法可以找到 a 的父级Model3DGroup
?
wpf - 从可视树中删除元素后,如何触发 commandBinding 的 CanExecute ?
我在这里有一个相关的问题,我有一个带有命令绑定的用户控件。用户控件已从可视化树中删除,但 canExecute 仍在触发。我对指挥模型的理解是,它像路由事件一样冒泡和隧道。那么一旦附加了命令绑定的元素不再在可视树中,CanExecute 怎么能触发呢?
wpf - WPF:将 ContextMenu 绑定到可视父级
我知道ContextMenu
s 不是可视化树的一部分,但我一直在尝试将Visibility
a 的属性绑定ContextMenu
到其 parent 上的属性UserControl
。到目前为止,我已经尝试过祖先绑定并尝试了转换,但目前看来远程可行的唯一方法是使用 aMultiValueConverter
和反射在UserControl
. 即使那样,我也不确定它会起作用。
我会以错误的方式解决这个问题吗?
wpf - 在工作线程中遍历 VisualTree 以进行全文搜索
我正在使用 WPF 来显示复杂的数据(想想报告)。我现在需要对其进行全文搜索。我们目前通过遍历可视化树来寻找文本块来做到这一点。看来这需要在UI线程上完成,是吗?这里的问题是,在整个 UI 块期间找到下一个匹配项可能需要相当长的时间。
有没有办法绕过这个问题?我可以尝试使用 UI 自动化,但是一旦找到匹配项,我该如何突出显示它?使用 UI 自动化我没有得到对 UI 元素的实际对象实例的引用,因此我不能在它上面放置一个装饰器。
WPF中的全文搜索通常是如何实现的?XPS 查看器是如何做到的?
wpf - 如何检查我的控件何时获取或更改可视父级?
我想挂钩我的控件的可视父事件。
c# - XAML 中定义的 DataTemplate 具有 null VisualTree
我将 WPF 与 .NET 3.0 一起使用。
我有一个相对简单的 DataTemplate 定义为 GridView 的 CellTemplate。我希望 DataTemplate 的 VisualTree 属性包含一个 FrameworkElementFactory,但是当我尝试从 GridViewColumnHeader.Click 事件访问它时,该属性为空。为什么 VisualTree 为空?我需要访问它。这是 ListView 定义:
这是事件处理程序: