问题标签 [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 回答
799 浏览

wpf - 动态添加控件的初始验证

WPF 验证系统执行对象的初始验证(我的意思是 - 当数据绑定项更改时验证所有字段,结果显示在 ui 上)。但是当我动态添加控件时,它不会像这样工作。在这种情况下会发生初始验证,但结果不会显示在 ui 上。只有在数据绑定对象的某些属性发生更改后,一切才开始正常工作。这是一个粗略的样本。

假设我们有 MyObject 类

还有一些用户控件,比如 MyUserControl,它允许编辑 MyObject 对象。它可能看起来像这样:

现在,当将此控件添加到 xaml 中的主窗口(或在构造函数或窗口加载事件中的代码中)时,比将 MyCustomControl.DataContext 设置为 MyObject 类的新实例时,名称字段会立即验证并发出错误通知使用验证错误模板显示。但是当动态添加 MyCustomControl 时(例如,单击按钮之后),会发生初始验证,但 ui 不显示结果(没有红色边框等)

假设应用程序窗口由一个停靠面板(dockPanel)和一个按钮组成:

为什么?

0 投票
1 回答
1347 浏览

wpf - 不,装饰器不会在 WPF 中自动获取其 AdornedElement 的 DataContext

原始问题:AdornerWPF 中是否自动继承其“AdornedElement”的“DataContext”?

0 投票
1 回答
492 浏览

wpf - GetAdornerLayer 是否为控件及其装饰器返回相同的层?

如果我在控件中调用 GetAdornerLayer(control) 然后向图层添加装饰器,调用 GetAdornerLayer(adorner) 会返回相同的图层吗?我问是因为我们有在控件中添加装饰器的代码,然后需要在控件消失时删除该装饰器。您不能在控件的 Unloaded 事件中调用 GetAdornerLayer(control),因为此时它已从可视化树中删除,但 GetAdornerLayer(adorner)似乎可以工作。

0 投票
1 回答
747 浏览

wpf - HwndSource 不显示 Adorner 层

当我在 HwndSource 中托管使用​​装饰器(文本框的错误边框)的 WPF 控件时,不会显示装饰器。装饰层似乎不存在。为什么会这样,我能做些什么呢?这是一个已知的错误?

0 投票
3 回答
9904 浏览

c# - GetAdornerLayer 神秘地返回 null

我一直在为我的应用程序的多个版本使用相同的代码,没有任何问题,但我现在神秘地收到NullRerefenceException以下内容:

background只是一个Border元素。

我对可能导致它的两个想法是 a) 切换到 .NET 4.0,以及 b) 将上述元素的实例(即 a UserControl)放在ItemsControl.

奇怪的是,这种情况并非一直发生,而且很难预测何时会发生,因此并不可靠。

0 投票
2 回答
2515 浏览

wpf - WPF 将 Adorner 移动到 AdornerLayer 或窗口之外

我有一个与鼠标光标一起移动的装饰器。然而,一旦鼠标移出窗口,装饰器就会被切断。

是否可以将装饰层扩展到整个屏幕或创建一个新的装饰层。

0 投票
1 回答
8351 浏览

wpf - 验证错误模板未显示数据错误

这是一个有点 WPF whodunnit !我的验证认为它没有按预期出现

问题

基本上,我在我的视图模型上使用 IDataErrorInfo 来提供有关数据输入错误的反馈。我可以看到它被调用并按预期工作,但是 WPF 永远不会显示绑定控件的验证错误模板!

我已经尝试过使用内置的默认文本框红色边框错误模板、样式错误模板和硬编码模板。在数据错误情况下,这些都不会显示。

这是我的 xaml 绑定代码:

奇怪的是,错误进入了 Validation.Errors 集合。以下代码导致我的 IDataErrorInfo 错误消息显示在绑定控件旁边。这让我认为问题出在 xaml 方面,而不是 viewmodel 方面。

此外, System.Windows.Controls.Validation.GetHasError(txtCaseNumber)返回 true。

如果这有所作为,我将在 winforms 中托管 WPF。我在我的代码或样式中找不到对 Validation 或 ErrorTemplate 的任何引用,所以我很确定这不是样式化自己的目标。

0 投票
1 回答
2195 浏览

wpf - Scrollviewer 中的错误装饰器

我试图确保我的错误装饰器不会被我的滚动查看器限制。我有一系列位于固定宽度滚动查看器边缘的文本框(没有水平滚动,只有垂直)。然后我有装饰器标记有错误的文本框。

问题是装饰器在滚动查看器的边缘被剪裁。

有任何想法吗?

*注意:我尝试将所有内容都包装在 AdornerDecorator 中。

0 投票
1 回答
4578 浏览

c# - How to make WPF Adorner visible

i'm struggling a bit about when or how to activate / make visible a MoveAdorner.

I try the following but have no success: In the element that is to be adorned i add the Adorner in the GotFocus event. That alone did not suffice so i added a call to InvalidateVisual(). But nothing happens. Has anyone a hint on how to make those Adorners Visible?

For Clarification: the adorned element is a Control that is positioned inside a derived Panel of a custom ItemsControl.

The MoveAdorner derives from Adorner and simply draws two Boxes on the top and bottom line of the control.

with kind regards

0 投票
2 回答
1516 浏览

wpf - Wpf Adorner 不响应交互


我正在尝试在 wpf 中创建一个叠加层(背景变暗),类似于您可以在网上找到的用于弹出图像的叠加层。我希望它可以在应用程序的多个部分中重复使用,并具有不同类型的内容。

这是装饰器类的构造函数的临时代码(只是为了尝试)

此外,在课堂上(当然),我有 MeasureOverride 和 ArrangeOverride 的 ovverrides 来为装饰者提供被装饰元素 GetVisualChild 和 VisualChildCount 的正确大小......

这里的问题是正确显示了装饰器,但没有在装饰元素上应用任何事件或行为。例如:

此处显示了按钮,但我无法单击该按钮,并且对按钮鼠标悬停没有任何影响。我仍然无法弄清楚问题所在。