问题标签 [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.
c# - C# - 获取收听 RoutedEvent 的订阅者列表?
我正在尝试获取订阅 PasswordBox PasswordChanged 事件的对象列表。
PasswordBox 有一个静态只读 RoutedEventPasswordChangedEvent
和一个实例PasswordChanged
事件。
谢谢!
c# - MouseDoubleClick 事件不会冒泡
我的场景,简化:我有一个包含员工行的 ListView,并且在每个员工行中,有按钮“增加”和“减少”调整他的薪水。
假设在我的程序中,双击员工行意味着“解雇此人”。
问题是,当我快速单击“增加”时,这会触发 ListViewItem 上的双击事件。当然,我不想在我只是增加他们的薪水时解雇他们。
根据所有其他事件的工作方式,我希望能够通过设置Handled=true
事件来解决这个问题。然而,这不起作用。在我看来,WPF 生成了两个独立的、完全未链接的双击事件。
以下是重现我的问题的最小示例。可见组件:
和处理程序代码:
启动该程序并双击列出的按钮后,两个消息框都会依次显示。(此外,在此之后按钮卡在向下位置。)
作为“修复”,我可以在 ListViewItem 处理程序上检查附加到事件的可视化树并检查“某处有一个按钮”并因此丢弃该事件,但这是最后的手段。在编写这样的代码之前,我至少想了解这个问题。
有谁知道WPF为什么要这样做,以及避免该问题的优雅惯用方式?
c# - 为什么 e.Handled = true 不起作用?
我有以下 XAML
在后面的代码中我正在这样做
现在,即使我将鼠标移到Button
set上,也会分别调用和e.Handled = true
的事件。为什么?我应该怎么做才能阻止路由事件冒泡?Grid
StackPanel
asp.net-mvc - 不使用 RouteCollection 路由 MVC .NET Url
我们正在使用 MVC .NET 和 RouteCollection 类在我们的 Web 应用程序中路由 URL。这正常运行,直到我们在 URL 内的任意位置传递包含文本“PRN”的 URL。发生这种情况时,将不会发生路由,并向客户端返回 400 Page Not Found 错误。这就像在路由集合被咨询之前就抛出错误一样,因为 URL 应该采用的路由永远不会被触及(我的意思是底层代码的断点永远不会被命中,尽管没有字符串“PRN”的完全相同的 URL " 将达到断点)。
所以我认为这可能是一个页面验证问题,也许微软决定在 URL 包含短语“PRN”时抛出异常,因为它就像“打印”或“色情”,但如果是这样的话,那么我们会看到“从客户端检测到潜在危险的 Request.Form 值”错误,但我们没有。
研究这个很麻烦,因为谷歌认为 PRN 应该返回“色情”的结果,这意味着我 98% 的搜索结果是无效的(和不适当的)。在 Google 中使用“-porn”子句会将您的结果降低到大约 10-30 次点击,所有这些都没有用。
有谁知道为什么包含字符串“PRN”的 URL 不能正确路由?如果您有任何帖子或主题要指向我,那将是很棒的(再次,Google 让我失望了)。
wpf-controls - 带有 ButtonBase 的路由事件参数
我目前正在与一个成员团队一起开发一个程序,他们也不知道如何解决这个问题。我创建了一组专业用户控件“ImageButton”。我将它用于程序的菜单部分。菜单本身是另一个用户控件。
他们目前正在使用 ButtonBase.Click 来访问按钮,但它不适用于我的新 ImageButtons。
ButtonBase.Click 导致称为“MainMenu_Click”的事件。
private void MainMenu_Click(object sender, RoutedEventArgs e) { Button _menuButtonClicked = (Button)e.OriginalSource; this.ShowMainPage((MainMenuCommands)_menuButtonClicked.Tag); }
我已经尝试将它们解析为 ImageButtons 但它没有奏效。所以我需要一个类似于 ButtonBase.Click 的解决方案,但适用于我的 ImageButtons。
编辑:我正在使用 3 个文件: MainWindow.xaml(及其 cs) MainMenu.xaml(及其 cs) ImageButton.xaml(及其 cs)
MainMenu 上有几个 ImageButtons。MainMenu 用于 MainWindow。要设置的属性之一是 ButtonBase.Click。但我需要为 ImageButtons 而不是 System.Windows.Controls.Button 进行设置。
wpf - PreviewMouseDown 未按预期进行隧道传输
我的应用程序上有以下树:
MyCustomControl 派生自 ItemsControl 并将其项目显示在 StackPanel 上。
MyCustomControl 需要知道何时在其内部单击鼠标,因此我已经覆盖了 OnPreviewMouseDown 方法,并希望在我的控件内收到任何鼠标按下的通知。
会发生什么:如果我在 Button1 内单击,PreviewMouseDown 事件会沿着树传播,并且 OnPreviewMouseDown 会按预期执行。但是,如果我单击 Item1,PreviewMouseDown 事件会在 MainWindow 之后停止,甚至不会到达 LayoutRoot。
以下是我使用Snoop获得的路由事件详细信息:
点击按钮1:
单击项目 1:
该事件从未被报告为已处理,因此据我所知,它应该继续进行隧道传输。
我在这里想念什么?
windows-phone-7 - WP7 自定义控件中的 RoutedEvents
在普通版本的 silverlight 中,您可以通过 EventManager 注册来创建事件处理程序。Windows Phone 7 没有该课程。我的问题是:如何创建将由父面板处理的事件。
我的场景:我创建了一个自定义类,其中包含一些文本框。Foreach 我已经添加了我的自定义行为,当点击文本块时会引发。行为如下:“单击自定义控件中的此 Textblock 时,请使用我的自定义 args 引发自定义事件(我想将它们传递给自定义控件本身(例如,指定将其更改为哪个 VisualState)。”
你能帮我解决我的问题吗?
c# - 路由事件和 ScrollViewer
这是我的元素树的组成方式(删除了不相关的信息)。
我正在模拟拖放。当你点击可点击的标签时,它会改变你的光标,给你拖动它的印象。我想要的是点击 TabItem,它会放回你的正常光标。
我不能使用 PreviewMouseDown 事件,因为它永远不会允许点击标签。
我发现的一个解决方案是在我的 ScrollViewer 和我的 ItemsControl 之间的元素树中添加一个大面板,具有透明背景以接收点击,在我的 ItemsControl 的 CollapsibleGroupHeader和ItemsPanel 上放置一个事件处理程序,但这并不是一个真正优雅的解决方案。
我在 WPF 中使用 RoutedEvents 来解决这类问题......
注意:我的处理程序不是我的风格,风格只是为了提供更多信息
有比我更好的解决方案吗?
wpf - 将 RoutedEvent 处理程序从一个控件复制到另一个控件
我有一个 WPF MenuItem,它是从没有其他信息的函数返回的,我想将另一个(新)MenuItem 的单击事件设置为与第一个 MenuItem 相同的函数。
我已经在 Windows 窗体中看到了执行此操作的代码(例如,是否可以从一个控件“窃取”事件处理程序并将其提供给另一个控件?),但我找不到 WPF 路由事件的解决方案。