Outlook应用程序删除复选框UI xaml代码如何工作?

时间:2010-12-08 18:45:49

标签: windows-phone-7

如果您点击Outlook中屏幕的左侧,则会触发一个事件(在这种情况下会出现一个复选框)。

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

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

我想我需要将我的图像包装在Canvas中,但我仍然不知道该事件应该是什么。

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

  2. 图像在具有SelectionChanged事件的列表框(在枢轴内)时应该具有什么事件? (MouseLeftButtonUp会导致问题,如果你半拖到下一个支点并抬起你的手指 - 它会触发MouseLeftButtonUp事件)

3 个答案:

答案 0 :(得分:1)

outlook app是一个原生应用程序,因此可能根本就没有使用xaml。

如果您担心鼠标事件,那么您应该查看silverlight工具包中的手势内容,它包含点击等事件,使手机更有意义。

答案 1 :(得分:1)

我实现了一个非常类似于该行为的东西,通过使用一个项目模板,使用负边距将复选框从左侧推到屏幕左侧。 然后我创建了2个视觉状态,一个用于打开和关闭。打开状态将边距设置为0,使复选框返回到屏幕上。封闭状态有负余量。

随着流体移动行为,按下按钮时状态之间的切换很容易。您必须添加的唯一内容是左侧的隐形按钮/触摸区域,它还会触发“打开”复选框列(更改状态以重置边距)。

希望有帮助...

答案 2 :(得分:0)

增加目标尺寸并通常使东西可触摸:将其包裹在Button中,然后改变Button的ControlTemplate以移除边框。

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

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

  • 首先,我会考虑我的整体控制是否应该在第一个位置更大,并且周围有良好的间距。我的设计是对的吗?

  • 第二,我作弊。我会使用Translate转换浮动一个固定大小的按钮,区域上没有边框,可以自由移动它。

祝你好运,