WPF/XAML:多个控件使用相同事件 - 有没有更简单的方法?

6

我有大约10个文本框使用相同的事件 - 然后只需将发送者转换为文本框并对文本进行任何更改。我很好奇,是否有更简单/更清晰的方法将这些事件分配给代码后台方法?目前,我只是将每个事件重复地分配给每个文本框。

是否可以使用模板或其他方法来完成任何操作?下面是每个TextBox上都有的内容。所有这些都只是复制和粘贴,但这是很多额外的代码行,如果有WPF解决方案可以避免它,我想要避免。

...
LostFocus="textBox_LostFocus"
MouseDoubleClick="selectText"
GotKeyboardFocus="selectText"
PreviewMouseLeftButtonDown="selectivelyIgnoreMouseButton" />

感谢您的提前帮助。
1个回答

8

是的,有更好的方法。为文本框创建一个样式。

<Style TargetType="{x:Type TextBox}">
    <EventSetter Event="LostFocus" Handler="textBox_LostFocus" />
    <EventSetter Event="MouseDoubleClick" Handler="selectText" />
    <EventSetter Event="GotKeyboardFocus" Handler="selectText" />
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="selectivelyIgnoreMouseButton" />
</Style>

以下是翻译的结果:

这里有一篇简单的博客文章,更详细地解释了它。


2
真是太棒了。我使用WPF的次数越多,就越喜欢它。感谢大家。 - Yatrix
如何在此处使用另一个类库中的事件? - sudhAnsu63

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接