问题标签 [routed-events]
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 - 隧道命令
我有几个在 ListBox 中实例化的用户控件。我的 Window 中有一个按钮 raises NavigationCommands.Refresh
,以及一个CanExecute
允许它执行的处理程序:
在每个动态创建的用户控件(在 ListBox 的 ItemTemplate 中创建)中,我都有一个NavigationCommands.Refresh
. 当我单击窗口中的按钮时,我在每个用户控件中设置的处理程序是否应该不触发?我需要命令来隧道到每个 UC,但它不是。
c# - RoutedEventHandler 未正确添加到指定元素
我正在尝试使用以下代码行添加RoutedEventHandler
到所有TextBoxes
直通代码:
上面的代码将处理程序绑定到 Window 上的所有表单控件,而不是单独的 TextBoxes。请问有人可以
- 解释为什么会这样
- 以及如何正确地做。
谢谢你。
c# - 通过 WPF 中的接口引发键盘事件
我正在尝试在 WPF 中构建一个应用程序,我想在其中处理来自连接到单台计算机的多个键盘的输入(KeyPress 事件)。所以,我有一个类,我覆盖WndProc()方法并能够接收来自不同键盘设备的输入。在执行此操作时,我使用 MainWindow 句柄注册此类,因此窗口可以接收 CLR 键盘事件。但这不是问题。
问题是现在我正在开发UserControl
WPF,它也可以响应这些多键盘事件。这些UserControls
将在同一个窗口中实例化,但我正在考虑发送事件(尤其是RoutedEvents
通过接口发送事件(尤其是 as )。因此,我的自定义 UserControl 类只是实现了接口,我很高兴。
你们知道如何做到这一点,我对 WPF 真的很陌生,所以我遇到了一些困难。
提前致谢 !!!
wpf - LoadedEvent 的路由事件类处理程序不适用于大多数类
我正在尝试为所有 Loaded 事件注册处理程序:
不幸的是,我的处理程序只为 Window 和 DatePicker 的后代调用。它不适用于任何其他类型。
谁能解释这种行为?这是一个错误,遗憾的是他们选择忽略它。
是否有其他方式可以通知应用程序/窗口中的任何新元素?
wpf - WPF 路由事件,订阅自定义事件
我试图让路由事件与将手动触发这些事件的子控件一起使用,它们将冒泡并在主网格级别进行处理。我基本上想做这样的事情:
但是当我运行我的示例时,我在演示框架中得到一个空引用,应用程序永远不会初始化,它在尝试加载/初始化 XAML (InitializeComponent()) 时失败。这是包含该事件的小文件:
我基本上想复制 ButtonBase.Click 如何允许父母为他们的孩子订阅任何按钮 click() 方法的行为。但是,这似乎不适用于 ButtonBase.Click()。也就是说,当我将自定义切换WpfApplication5:SpecialEvent.Tap="Catcher_Tap"
为ButtonBase.Click="Catcher_Tap"
它时,它会起作用。任何想法为什么?ButtonBase 在做什么而我没有做什么?
c# - PreviewMouseRightButtonDown 路由事件和 WPF DataGrid
现在这里基本上有两个问题,让我轻轻地向您介绍一下我目前遇到的问题。假设我们有一个常规的 DataGrid,我尝试PreviewMouseRightButtonDown
在行上应用自定义功能,同时避免选择,因为这会扩展 Details 视图。我认为这篇文章会有所帮助;它是针对 的ListView
,但只需稍作调整,它应该可以正常工作,对吗?
你为什么想这么做?,你可能会问。我想避免在右键单击时打开详细信息,因为在主项目详细信息部分中(有时)会花费很长时间访问数据库,并且右键单击只会bool
在集合中的视图模型中设置适当的标志属性。
MainWindowView.xaml:
MainWindowViewModel.cs:
提问时间:
- 为什么
RoutingStrategy
列出RoutedEventArgs
的为Direct
而不是Tunneling
?我以为所有Preview
事件都是Tunneling
。
- 更重要的是:如果我在里面放一个断点,上面的解决方案就可以工作
CheckItem
,不会发生选择并且详细信息被折叠,一切都按预期工作。如果我删除断点,则会选择项目并打开详细信息部分,就好像事件没有停止传播一样。为什么会这样?我认为将 设置为Handled
应该只是表明该事件已被true
真正处理。RoutedEventArgs
[编辑]
现在我找到了一个“低俗”的解决方法,我可以附加PreviewMouseDown
事件:
然后连接到SelectionChanged
事件:
它适用于我的特殊情况,但主观上看起来很臭,所以我愿意接受任何其他建议。特别是为什么简单eventArgs.Handled = true
的鼠标事件不足以抑制SelectionChanged
以后的触发:)
c# - WPF 未从用户控件接收路由事件
我有一个UserControl
用作自定义按钮的按钮,但是由于我更改了围绕路由单击事件的命名空间不再起作用。基本上我的命名空间看起来像这样:
UI
UI.Controls
UI.Pages
我有UI.Controls.CustomButton
一个路由点击事件实现了类似的东西:
我正在尝试从UI.Pages.SomePage
这样的内部使用它:
XAML
C#
当我调试应用程序时,我看到RaiseEvent
my 内部UI.Controls.CustomButton
被击中,但NewButton_Click
my 内部UI.Pages.SomePage
从未被调用。
当一切都在同一个命名空间中时,这是有效的......我是否遗漏了一些明显的东西?谢谢!
wpf - wpf xaml中的EventTrigger RoutedEvent amimation
MyObject.IsGlowing = true
我希望在我这样做时启动动画(<DataTemplate>
如果有帮助的话,我很乐意)
但我收到此错误“触发器集合成员必须是 EventTrigger 类型”所以我将其更改为
但我不知道在RoutedEvent中放什么......
wpf - TabItem 事件处理中的 DataGrid
我有一个带有两个 TabItem 的 TabControl,在一个 TabItem 内我有一个 DataGrid。我正在尝试处理 TabItem 单击,并且它可以工作,但是,当我单击“dataGrid1”的一行时,也会触发 TabItem 单击的事件“TabItem_MouseLeftButtonUp”。见代码:
注意:我不能使用个性化<TabItem.Header>
,因为我正在使用 MahApps,如果我使用 TabItem.Header 样式 os TabItem 将会中断。
c# - 停止控件处理路由事件
希望是一个简单的问题,因为我刚刚开始处理路由事件。
我有一个习惯UserControl
。这包含许多其他控件。
UserControl
在我的树的上方,我想响应源自其中一个包含的控件(不是 my )的双击事件。但是,我UserControl
显然是在捕捉事件并将source
属性设置为自身。我怎样才能阻止它这样做?
我不能使用OriginalSource
,因为这指向点击的最低级别的控件(Border
或其他)。
例如。
我已经尝试过覆盖OnMouseDoubleClick()
和OnPreviewMouseDoubleClick()
in MyUserControl
,但此时事件已经将 Source 设置为MyUserControl
甚至在调用 base 或任何东西之前。
非常感谢