所以我有我的控制权,我想在触摸时展开并显示我的按钮,它嵌套在控件的数据模板中。然后,我希望按钮可以按下,但如果触摸任何地方,除了按钮
之外,还希望控件折叠初始化控制
MyControl mc = new MyControl();
mc.TouchDown += mc_TouchDown;
mc.TouchUp += mc_TouchUp;
活动处理程序
void mc_TouchDown(object sender, TouchEventArgs e)
{
var mc = (MyControl)sender;
mc.CaptureTouch(e.TouchDevice);
}
void mc_TouchUp(object sender, TouchEventArgs e)
{
var mc = (MyControl)sender;
if (mc != null && e.TouchDevice.Captured == mc)
{
//Expand and show button / Collapse and hide button
mc.ReleaseTouchCapture(e.TouchDevice);
}
}
现在按钮位于MyControl
的数据模板中,并且连接到命令,当我触摸按钮以运行命令MyControl
触发事件被触发并且按钮点击被忽略
如何使MyControl
上的触摸事件发挥作用,但当按钮显示并触摸时,按钮触摸事件优先于MyControl
事件?
答案 0 :(得分:2)
所以我使用Command作为我的按钮,但我改为使用TouchDown
事件代替
private void addToDiary_TouchDown(object sender, TouchEventArgs e)
{
//do my thing
e.Handled = true;
}
这意味着按钮已执行且事件没有冒出MyControl
答案 1 :(得分:1)
尝试为e.Handled = true
设置TouchEventArgs
以防止事件冒泡。