问题标签 [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.

0 投票
2 回答
1735 浏览

c# - WPF,某些事件不会从网格到用户控件启动

我有一个 UserControl,我在其中覆盖了一些这样的事件:

我将此控件添加到另一个 UserControl -> Grid,此 Grid 已注册 MouseUp。

在 MyParent XAML 中,我只是:

我注意到的是,当我在 MyControl 上释放鼠标时,事件被 Grid 捕获而不是路由到 MyControl,为什么?

如何在 MyControl 类中接收 MouseUp 事件?

使用 MouseDown 进行编辑 ,所有工作都按预期工作,只有 MouseUp 不起作用......并且这两个事件也都为父 Grid 注册,那么有什么区别?

编辑2

好的,我想我发现了问题,如果我直接在 XAML 中将 MyControl 添加到 MyParent -> Grid,一切正常,但如果我以编程方式添加它“MyParentInstance.Grid.Children.Add(MyControlInstance)”,那么我遇到了上述问题.

我添加控件的代码是否正确?

谢谢。

0 投票
1 回答
1523 浏览

c# - 如何防止 WPF TreeView 在多个项目上引发 MouseEnter?

我有以下应该创建一棵树的代码。该树的每个项目在悬停时都应更改其背景。

XAML:

后面的 C# 代码:

而不是做我需要的树看起来不同。当我悬停一个项目时,它会突出显示,但由于某种原因它的父项目也被突出显示。

在此处输入图像描述

我该如何解决这个问题?

UPD1我看到我的问题与此处描述的问题非常相似,但我还不明白如何应用该解决方案。

0 投票
1 回答
1508 浏览

wpf - 使用 Style 处理许多 WPF 元素中的 Window 的 RoutedEvent

我有以下路由事件:

我有以下 XAML:

我的目标是通过使用可重用的通用样式,窗口的路由事件将导致情节提要为所有 TextBlock 触发。但是,引发路由事件(通过单击按钮)不会导致任何事情发生(没有错误,只是什么都没有)。不知道出了什么问题。

对此的正确方法是什么?

0 投票
1 回答
1381 浏览

wpf - 如何制作 WPF ComboBox 来处理对上覆 TextBlock 的点击?

我有一个位于 ComboBox 上方的 TextBlock,我希望在单击它时出现组合框弹出窗口(下拉菜单)。

是否可以?

0 投票
1 回答
18553 浏览

c# - 如何从用户控件中引发自定义路由事件?

在我的用户控件中,我有一个按钮,单击该按钮会引发自定义路由事件。我试图提高它,但它不会在 MainWindow.xaml 中被触发。

UserControl 中按钮的 Xaml:

用户控件 C# 代码:

MainWindow.xaml 中 UserControl 实例的 Xaml 代码:

应该在 MainWindow.xaml.cs 中触发的 C# 代码:

0 投票
2 回答
255 浏览

c# - Passing data between different views

I am writing a WPF application in C# according to the MVVM model. I have a MainWindow which consists of several views: MenuView, ContentView1, ContentView2, . . . and so on.

The MenuView, ContentView1, ContentView2 . . ., are all cousins (not bothers) in the XAML tree.

The MenuView consists of few buttons. Each button has a unique ID. The Content Views (all of them) should receive the menu ID of a selected (clicked) button. i.e. when a button in the MenuView is clicked I want to pass its ID to ContentsViews1, ContentsViews2 and so on.

I am not sure what is the best way to pass data between the views.

I thought to attach an event handler to all menu buttons which reside in the MenuView. The handler is implemented in MainWindow class (which is the root view). This handler will raise a RoutedEvent (with tunnel option) to all children views.

Is there a better way to do it? Is it the best way considering performance issue?

0 投票
1 回答
322 浏览

c# - 这个路由事件的声明有什么问题?

我创建了以下用户控件:

现在,当我尝试在我的 xaml 代码中使用此路由事件时:

我在编译时遇到以下错误:

为什么我会得到这个,以及如何使路由事件起作用?

0 投票
1 回答
2228 浏览

wpf - WPF 事件系统如何知道事件路由?

我试图了解 RoutedEvents 是如何工作的。好吧 - 我浏览了一些教程并理解了为什么 RoutedEvents 很有用以及它们是如何工作的。但有一件事,我不明白:

假设我写了一个类(例如“MyClass”),它有一个RoutedEvent 属性……。像这样:

好吧 - 仅仅提供一个属性是不够的 - 所以我必须在 EventManager 的帮助下注册 RoutedEvent:

好的 - 现在 WPF 事件系统知道这个事件。如果我这样做,我编写的每个类都会有它自己的 RoutedEvent。但这对我来说毫无意义。

我想要的是其他类监听相同的事件——而不是 MyClass 的类型。

例如:我有一个堆栈面板,堆栈面板中有一个按钮。单击堆栈面板将引发 onClick 事件。单击按钮将引发按钮的 onClick 事件 - 然后是堆栈面板上的 onClick 事件。但是怎么做?

抱歉 - 我很难描述这个问题 - 我太困惑了 :)

多谢。代码食人族

0 投票
2 回答
4220 浏览

wpf - 如何检测对 RadGridView 控件的选定行的单击

我的 WPF 应用程序在其一些屏幕上使用 Telerik RadGridView 控件。我有一个要求,即每当用户单击 RadGridView 中的一行时,我都应该切换到另一个屏幕并显示有关该行的详细信息。我为 SelectionChanged 事件连接了一个处理程序,这很有效,但如果用户再次单击选定的行,则不会发生任何事情。这是有道理的,因为选定的行没有被更改。

如何检测对同一行的第二次点击并显示第二个屏幕?

托尼

0 投票
2 回答
3629 浏览

wpf - MenuItem.Click RoutedEvent 未在 WPF 中触发

我有一个ContextMenuDataGrid我正在尝试捕获MenuItem.Click所有菜单项的事件。像这样:

问题是事件永远不会触发。MenuItem.Click应该是一个冒泡事件,我应该能够在视觉树的任何地方捕捉到它。

我究竟做错了什么?

编辑:在代码中添加处理程序工作正常。的构造函数中的以下行都.xaml.cs很好。