1. 在编写Pivot中的ListBox的Item项的时候,LeftButtonDown 或者LeftButtonUp事件效果都不是很理想,都容易在滑动的时候触发。
因此改为对触摸事件的处理,没有滑动则相当于点击。
private Point? startPoint;
private void StackPanel_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
startPoint = e.ManipulationOrigin;
base.OnManipulationStarted(e);
}
private void StackPanel_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
if (startPoint.HasValue)
{
if (Math.Abs(e.DeltaManipulation.Translation.X) > 0 || Math.Abs(e.DeltaManipulation.Translation.Y) > 0)
{
this.startPoint = null;
}
}
base.OnManipulationDelta(e);
}
private void StackPanel_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
if (startPoint.HasValue)
{
if (Math.Abs(e.TotalManipulation.Translation.X) == 0 && Math.Abs(e.TotalManipulation.Translation.Y) == 0)
{
FrameworkElement touchedControl;
//判断自己点击是什么控件从而做出不同的判断。
if (e.OriginalSource is TextBlock)
{
}
else if (e.OriginalSource is Image)
{
}
}
}
base.OnManipulationCompleted(e);
}
但是上面有一个问题就是因为具体控件占的地方很小,因此实际到设备上调试就会发现很难点击进入,这里有一个技巧就是把它的父容器比如Grid,stackPanel这些的Background 改为 Transparent 这样的话效果就会很好了!