问题标签 [adornerlayer]

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

c# - 在与 WPF 中的子元素不同的父元素上设置不透明度

我正在尝试在我的应用程序中模拟一个“模态”类型的事件,该事件将提供透明背景“变暗”的感觉,以及一个包含内容的表单。

我遇到的问题是我在覆盖画布上设置不透明度,它在子窗体上继承。

这显示在下面的屏幕截图中。您仍然可以看到背景项目的角落。

在此处输入图像描述

我正在使用的代码如下:

0 投票
1 回答
2027 浏览

.net - 如何隐藏装饰品?

我试图隐藏/显示特定元素的装饰器:

1)试图隐藏装饰元素,但没有成功。

2)通过使用以下代码,但是当我将其应用于特定元素时,所有其他装饰器都被隐藏(元素放置在不同的画布上)。

如何隐藏特定元素的装饰器?

0 投票
0 回答
674 浏览

c# - 如何在 Scrollviewer 中获取 UIElement 的装饰器?

我是 WPF 的新手,我一直在寻找解决方案。我的目标是听 UIElement 的装饰器调整大小事件,这就是为什么我需要获取元素的装饰器。我已经搜索过类似的问题,但我只找到了创建或直接访问装饰类的问题。然而,在我的例子中,装饰器是在将 UIElement 添加到 Scrollviewer 时创建的。如果您想知道我正在开发热敏标签编辑器

我目前能够获得 UIElement、scrollviewer 和具有 AdornerLayer 的滚动内容演示器,正如我在帖子中所读到的那样,装饰器在其中呈现。但是我仍然看不到 AdornerLayer 对象上的装饰器,正如我在这篇文章中所尝试的那样:Copy UI element with adorner

这是 WPF Visualizer 的屏幕截图。http://codetampus.com/wpfvisualizer.png

我希望有人可以帮助和启发我,也许我只是错过了一些东西。

0 投票
2 回答
1198 浏览

c# - 如何在装饰层下触发事件

我想点击装饰层下的按钮。当然,在视觉树中,装饰器是与控件不同的分支。 无法处理 PreviewMouseDown

如何在装饰层下触发事件?

xaml 如下。

代码隐藏如下。

0 投票
1 回答
1408 浏览

wpf - WPF DataGrid 和装饰器

我正在使用 Adorner 在 WPF DataGrid 的选定单元格中放置一个指示器三角形(与在 Excel 中的单元格中插入注释时获得的效果相同)。不幸的是,我让随机的装饰者出现在他们不应该出现的地方。

假设有 3 个单元格应该有装饰器;我得到了 3 个额外的单元格,它们也有装饰器。我已经证明只有 3 个在代码中被创建,即使有 6 个出现。我在 ElementGenerated 事件中创建/删除装饰器。

额外的实例始终位于网格的可视区域中尚未出现的单元格上,因此我相当确定问题是由于网格列的虚拟化以及网格正在重用单元格而不是创建新的单元格和因此 ElementGenerated 事件不会再次触发,并且 Adorner 不会在不需要的地方被移除。

当 Cell 被重新使用时,我找不到可以使用的事件。任何建议将不胜感激。

这是三角形装饰器的代码:-

以及添加/删除的事件:-

0 投票
2 回答
671 浏览

c# - Is It Possible To Draw a UI Element On Top of the Adorner Layer?

For my WPF TreeView user control, I would like to display a progress ring around a ToggleButton to indicate that the node's children are populating, like so:

Image

(Full disclosure, I saw this type of behavior in some open source software, I just can't remember where). I still want the toggle button to be interactive (i.e., get mouse events, like hover and click) so the user can collapse the node if they no longer wish to wait for the update to complete.

My first thought was to add the progress ring as an adorner layer to the ToggleButton. However, since the WPF adorner layer lies on top of the UI element in Z-order, I cannot seem to interact with the toggle button below the progress ring. Is there a way to draw the toggle button on top of the adorner layer? Or does an adorner layer not seem like the right approach in this case? Would it be better to just trigger off a property to control the template of the toggle button and draw both the progress ring and the toggle button when updating the children? Thanks for any thoughts!

Relevant tutorials I am leveraging off:

Working with Checkboxes in the WPF TreeView

WPF Loading Wait Adorner (which has links to progress ring and adorner sources)

0 投票
1 回答
124 浏览

wpf - 消息冻结UI应用程序而不使用弹出消息框

我们正在使用 WPF。我们有一个具有多个屏幕的应用程序,左侧有一棵树。在其中一个中,用户添加、编辑和删除该树中的节点。因此,我们需要在用户按下删除消息时向用户显示一条消息,如果他真的想删除或不删除(是/取消)消息,它需要冻结整个应用程序。然后用户被迫做出决定。同时,我们不想要弹出消息。我们需要像 Adorner 这样的东西。显示灰色背景(这意味着整个应用程序已冻结),我们可以在其中托管带有消息的边框。我们需要 Adorner 的替代选项。

0 投票
1 回答
322 浏览

c# - 绘制 UserControl 的装饰器而不进行剪辑,但覆盖下面的控件

我在文档中有字段,这些字段在 WPF 窗口(选项卡内)中显示为 UserControls。

我需要创建一个自动搜索功能,在字段下方显示结果。

我带着一个包含内部控件的装饰器(列表)。

第一个问题是我无法访问 UserControl 中控件的装饰层。

我去找了窗户的装饰层。不幸的是,如果我把装饰器放在里面,我在任何地方都看不到它。

下一个尝试是将 AdornerDecorator 放在 UserControl 中。

如果我在控件上方绘制装饰器,这很好用:

以上

但是,如果我将装饰器放在文本字段下,则下面的控件将绘制在装饰器上方:

在此处输入图像描述

有没有办法让第二个“下面”案例正常工作?

0 投票
1 回答
1231 浏览

c# - 加载时将装饰器添加到 WPF RichTextBox 中的图像

我正在开发的应用程序中有一个 RichTextBox 控件,我将它与 ToolBar 一起用于创建富文本编辑器。我实现的一个功能是用户插入图像的能力,现在值得注意的是,RichTextBox 的输出是 RTF。

当用户插入图像时,我使用以下代码将图像添加到文档中,然后将 ResizeAdorner(此处为RichTextBox Resizing Adorner的示例)添加到允许用户调整大小的图像中。当用户保存并加载文档时,图像的大小会正确保留。

问题和疑问是,当加载文档时,我无法弄清楚如何将 ResizingAdorner 添加到文档中的图像中。我正在使用附加属性来加载文档内容,下面的代码是加载文档的部分:

任何人都可以帮助我如何将 ResizingAdorner 添加到加载的文档中的任何图像中吗?

0 投票
1 回答
309 浏览

wpf - 如何使用装饰器从各个方面调整窗口大小?

我有一个无边框透明 wpf 窗口 (WindowStyle=None),我希望能够从各个方面调整大小。如果我设置 ResizeMode=CanResizeWithGrip,当前调整大小仅适用于上述设置。这对视觉提示很好,但不是很好,因为您只能从一个角落调整大小。

我想用一个装饰器来做这个,所以当窗口处于调整大小模式(可以打开和关闭)时,我也可以给出视觉提示。这可能吗?如果是这样,我将如何处理?