我有一个控件,希望在触摸时扩展并显示嵌套在数据模板中的按钮。然后,我希望该按钮可按,但如果除了按钮以外的任何地方被触摸,该控件也会折叠起来。
初始化控件
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
上的触摸事件可以正常工作,但是当显示并触摸按钮时,按钮的触摸事件优先于MyControl
的事件?
Expander
控件是否更适合? - Steven Rands