2010-12-08 111 views
2

如果您在Outlook中点击屏幕的左侧,则会触发一个事件(在这种情况下,会出现一个复选框)。Outlook应用程序如何删除复选框UI xaml代码?

我想知道如何实现这个xaml。它不能是一个简单的“MouseLeftButtonUp”事件,因为如果您将手指拖动超过几个像素,则事件不会触发。

在我自己的应用程序中,我试图让一个图标出现在具有SelectionChanged事件的列表框中。问题是,如果你没有精确地触摸小图标,那么你正在触发列表框事件,而不是按下图像时想要发生的事件。

我想我需要将我的图像包裹在Canvas中,但是仍然坚持事件应该是什么。

  1. 如何增加用户点击元素的区域的目标大小?

  2. 图像在具有SelectionChanged事件的列表框(它在一个数据透视图中)时应具有什么事件? (的MouseLeftButtonUp会造成一些问题,如果你一半拖动到下一个支点,抬起你的手指 - 它触发的MouseLeftButtonUp事件)

回答

1

我通过使其中的复选框,通过使用阴性切缘推离屏幕向左一个ItemTemplate实现非常类似行为的东西。 然后我创建了2个视觉状态,一个用于打开和关闭。打开状态将边距设置为0,使复选框返回到屏幕上。封闭状态有负值。

随着fluidmove行为,按钮按下之间的状态之间切换是EASY。唯一需要添加的是左侧不可见的按钮/触摸区域,这也会触发“打开”复选框列(更改状态以重置边距)。

希望可以帮助...

1

前景的应用程序是一个本地的应用程序,所以它可能不使用XAML的。

如果您担心鼠标事件,那么您应该查看silverlight工具包中的手势,它包含轻敲等事件,这些事件在手机上更有意义。

+0

感谢Silverlight控件工具包中的tap事件效果很好!任何想法如何使图像的可点击区域更大?我一直把它看作是“触摸目标区域”,但看不到代码示例。 – KevinUK 2010-12-08 21:55:14

0

增加目标大小并且通常使东西变为可触摸的:将其包装在按钮中,然后更改Button的ControlTemplate以删除边框。

如果您查看按钮的ControlTemplate(表达式混合,编辑模板,编辑副本),您将看到触摸区域的机制。它只不过是填充/边距。

因此,您不能在不改变布局并影响控件周围的其他项目的情况下排除触摸区域。我会做两件事:

  • 首先,我会考虑是否我的整个控制应该是更大的第一个周围有良好的间距。我的设计是否正确?

  • 二,我会欺骗。我会浮动一个固定大小的按钮,使用“转换”转换可以自由移动该区域,而无需在该区域边框。

祝你好运,

卢克