如何在 UWP 或 C# 中查找指针事件类型,例如已输入指针或已存在指针?
How to find pointer event type like pointer entered or pointer existed in UWP or C#?
我们如何从RoutedEventArgs
中找到哪种指针事件类型?
就像我有一个 HyperlinkButton
和一个普通的 Button
。
我想在两个元素上使用鼠标 PointerEntered
/PointerExited
时使用相同的方法。
HyperlinkButton hLinkBtn1 = new HyperlinkButton();
Button btn1 = new Button();
hLinkBtn1.PointerEntered += myEvent;
hLinkBtn1.PointerExited += myEvent;
btn1.PointerEntered += myEvent;
btn1.PointerExited += myEvent;
private void myEvent(object sender, PointerRoutedEventArgs e)
{
// TODO
// get pointer entered OR exited
}
使用 as 运算符转换 sender
参数:
private void myEvent(object sender, PointerRoutedEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
//button was clicked...
}
else
{
HyperlinkButton hpl = sender as HyperlinkButton;
if (hpl != null)
{
//hyperlink was clicked...
}
}
}
My question is not about Element, I want to know which Event triggered. When mouse over / out, get pointerEntered / pointerExited
您可以使用匿名事件处理程序来调用接受参数的方法,该参数可用于判断是否引发了 PointerEntered
或 PointerExited
事件:
btn1.PointerEntered += (ss, ee) => myEventHandler(ee, "PointerEntered");
btn1.PointerExited += (ss, ee) => myEventHandler(ee, "PointerExited");
...
private void myEventHandler(PointerRoutedEventArgs ee, string eventType)
{
switch(eventType)
{
case "PointerEntered":
//...
break;
case "PointerExited":
//...
break;
}
我们如何从RoutedEventArgs
中找到哪种指针事件类型?
就像我有一个 HyperlinkButton
和一个普通的 Button
。
我想在两个元素上使用鼠标 PointerEntered
/PointerExited
时使用相同的方法。
HyperlinkButton hLinkBtn1 = new HyperlinkButton();
Button btn1 = new Button();
hLinkBtn1.PointerEntered += myEvent;
hLinkBtn1.PointerExited += myEvent;
btn1.PointerEntered += myEvent;
btn1.PointerExited += myEvent;
private void myEvent(object sender, PointerRoutedEventArgs e)
{
// TODO
// get pointer entered OR exited
}
使用 as 运算符转换 sender
参数:
private void myEvent(object sender, PointerRoutedEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
//button was clicked...
}
else
{
HyperlinkButton hpl = sender as HyperlinkButton;
if (hpl != null)
{
//hyperlink was clicked...
}
}
}
My question is not about Element, I want to know which Event triggered. When mouse over / out, get pointerEntered / pointerExited
您可以使用匿名事件处理程序来调用接受参数的方法,该参数可用于判断是否引发了 PointerEntered
或 PointerExited
事件:
btn1.PointerEntered += (ss, ee) => myEventHandler(ee, "PointerEntered");
btn1.PointerExited += (ss, ee) => myEventHandler(ee, "PointerExited");
...
private void myEventHandler(PointerRoutedEventArgs ee, string eventType)
{
switch(eventType)
{
case "PointerEntered":
//...
break;
case "PointerExited":
//...
break;
}