我想用silverligh创建绘图应用程序,但我遇到了问题。我有一个颜色矩形当单击矩形时,将描边形状并双击以填充形状。我的下面的代码不能正常工作,当双击第一个ClickCount
是1然后增加到2.你能告诉我如何解决它。感谢。
private void Rect0_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount == 2)
{
RectFront1.Fill = Rect0.Fill;
}
else
{
RectFront.Fill = Rect0.Fill;
}
}
答案 0 :(得分:0)
根据这篇文章(http://www.c-sharpcorner.com/uploadfile/dbd951/how-to-handle-double-click-in-silverlight-5/),e.ClickCount具有以下行为。
根据首次点击和第二次点击之间的时间计算计数。 从帖子中引用。
考虑您是否尝试点击5次。第三次点击后,如果你 在第3次和第4次点击之间给出200毫秒的间隙,然后是第4次 点击将被视为第一次点击。它将重置ClickCount 属性,如果第一次单击和第二次单击之间的时间是 大于200毫秒。
另外,你可以考虑使用双击的行为,因为我认为你会经常在绘图应用程序中使用它。 这是一篇好文章: 在框架元素的silverlight中双击事件。 http://blog.cylewitruk.com/2010/10/double-click-event-in-silverlight-on-frameworkelement/
我能想到的第三个选择是使用RX(https://www.nuget.org/stats/packages/Rx-Silverlight) https://msdn.microsoft.com/library/hh242985.aspx
Observable.FromEvent<MouseButtonEventArgs>(myControl, "MouseLeftButtonDown").TimeInterval().Subscribe(evt =>
{
if (evt.Interval.TotalMilliseconds <= 300)
{
// Do something on double click
}
});
这是这个问题的答案:Cleanest single click + double click handling in Silverlight?