问题标签 [adorner]

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 投票
2 回答
2312 浏览

wpf - 有什么方法可以让 WPF Adorner 忽略鼠标?

有没有办法让 WPF 装饰器完全忽略鼠标,以便装饰器后面的 UIElement 仍然获得鼠标事件,就好像装饰器不存在一样?

0 投票
2 回答
17245 浏览

wpf - 为什么我的装饰器应用到的元素发生变化时不会重新渲染?

在我正在构建的 UI 中,只要面板中的一个控件具有焦点,我就想装饰面板。所以我处理这个IsKeyboardFocusWithinChanged事件,并在元素获得焦点时添加一个装饰器,并在它失去焦点时移除装饰器。这似乎工作正常。

我遇到的问题是,如果装饰元素的边界发生变化,装饰器不会重新渲染。例如,在这个简单的例子中:

WrapPanel装饰器在接收焦点时正确地装饰了边界TextBox,但是当我输入文本时,TextBox装饰器的边缘下方会展开。当然,一旦我做了任何迫使装饰器渲染的事情,比如 ALT-TAB 退出应用程序或将焦点放在另一个面板上,它就会自行纠正。但是当装饰元素的边界发生变化时,我怎样才能让它重新渲染呢?

0 投票
1 回答
3065 浏览

c# - Adorner 会破坏 MVVM 吗?

我正在使用 MVVM 开发 WPF 应用程序。我的大多数观点只有 xaml 标记,后面的代码没有任何内容(默认样板除外)。

当我想禁用整个屏幕时,除了我使用装饰器将屏幕“变黑”的一种视图之外的所有视图。

那样可以么?或者有没有更好的方法在我的视图模型中实现这个?

0 投票
2 回答
5857 浏览

c# - WPF:装饰器命中测试/MouseDown 事件

我有一个装饰边框的装饰器(请参见下面的屏幕截图)。但是,仅在单击装饰器中的元素时才会引发装饰器的 MouseDown 事件。当单击装饰元素上方的装饰器中的任何位置时,我需要引发 MouseDown 事件。如何才能做到这一点?我必须在装饰器中添加透明控件还是有其他方法?谢谢你的帮助!

屏幕截图和 VS 2008 项目:http ://cid-0432ee4cfe9c26a0.skydrive.live.com/browse.aspx/%C3%96ffentlich?uc=2

装饰者守则:

0 投票
1 回答
18487 浏览

wpf - 我什么时候应该使用装饰器?

WPF 很棒,因为有很多方法可以实现您的目标。例如,据我了解,装饰者可以向 UI 元素添加一些控件,但我认为可以通过包含附加元素的自定义控件来实现相同的行为。

所以,我的问题是:我什么时候应该更喜欢装饰器而不是更复杂(但我认为更灵活)的自定义控件?请考虑我正在广泛使用 MVVM 模式,并且我想将命令绑定到附加元素。

特别是,我正在设计一个图表设计器应用程序,我想为我的形状添加连接点。我应该在自定义控件和装饰器之间做出决定的另一个示例是一条线,它显示了一个自动定位为“跟随”该线的标签。

谢谢

0 投票
2 回答
6042 浏览

wpf - WPF 装饰层何时首次可用?

我正在尝试向我的 UserControl 添加叠加效果,我知道这就是 WPF 中使用的装饰器。但是我对它们应该如何工作感到有些困惑。我认为装饰层由 WPF 运行时隐式处理,因此应该始终可用。

但是当我在代码中创建我的 UserControl 实例时,那里没有装饰层。以下代码失败并出现异常:

有人可以向我解释一下,这应该如何工作?我需要先将 UserControl 实例放入顶级 Window 吗?还是我需要以某种方式自己定义图层?翻阅文档让我无处可去。

谢谢!

0 投票
2 回答
936 浏览

wpf - WPF 模板:AdornedElement 未显示!

我想通过使用带有额外元素的模板和插入正确位置的原始文本框来向文本框添加一些元素。我正在尝试使用 AdornedElementPlaceholder,就像您在制作 Validation.ErrorTemplate 时所做的那样,但 AdornedElement 没有出现。我已经尽可能地简化了这个例子:

结果只是在应该是我的文本框的空间周围出现了一个绿色框!

0 投票
1 回答
1049 浏览

wpf - WPF:装饰器未收到任何键盘事件

我有一个 Adorner,我希望该 Adorner 能够接收键盘事件,但是我对那些整个焦点的东西有问题。有人可以告诉,必须做些什么才能使装饰器能够接收键盘事件?非常感谢您的帮助!

0 投票
2 回答
3928 浏览

wpf - 没有事件传递给 WPF 装饰层

我正在尝试在 WPF 中创建一个很好的“拖放区”,当某些东西被拖入主应用程序时,它会显示在装饰层中。问题是我没有从我的装饰器那里得到任何事件,即使根据文档它应该接收所有输入事件,因为它处于更高的 z 顺序。

为了调试我的问题,我创建了一个非常简单的示例,其中我有一个用户控件,其中只有一个按钮。此用户控件显示在装饰层中,但我无法单击该按钮。为什么?我做错了什么?

我的装饰类是这样构造的:

并在主窗口中由

我没有从我的控制中得到任何事件,即没有鼠标点击、鼠标悬停、按钮点击。我什至无法单击装饰层中的按钮。我做错了什么?

0 投票
2 回答
2156 浏览

wpf - 触发器中的 AdornedElement 属性

我在 XAML 中有一个 Adorner,用于 ErrorValidation。基本上我有一个网格,我想在两个条件下显示(如果“AdornedElement”IsFocused 或 IsMouseOver)。

下面是我成功绑定到 AdornedElement 的 IsFocused 的代码片段,但正如您所知,它只能解决 1/2 的条件。现在我不能将另一个绑定传递给转换器,也不能创建一个同时处理两者的属性(需要是唯一的 XAML 解决方案)。

我想做的是使用触发器来处理这个问题,唯一的问题是我无法在触发器上访问 AdornedElement 的属性。

像这样的东西...

这也有助于我想要做的是触发动画,而不仅仅是设置可见性。

任何帮助都会很棒。