【发布时间】:2011-05-29 18:15:05
【问题描述】:
我不一定要使用滑块控件,而是要使整个屏幕成为交互式滑块。例如,我正在使用床头柜应用程序进行练习,我希望他们可以向下滑动手指以降低亮度或向上滑动以增加亮度。我知道这已经在其他应用程序中完成,但我不知道从哪里开始。如果有人能给我一个关于什么技术可行的起点或实现这一目标的任何想法,那就太好了!
谢谢
【问题讨论】:
标签: c# silverlight windows-phone-7 slider
我不一定要使用滑块控件,而是要使整个屏幕成为交互式滑块。例如,我正在使用床头柜应用程序进行练习,我希望他们可以向下滑动手指以降低亮度或向上滑动以增加亮度。我知道这已经在其他应用程序中完成,但我不知道从哪里开始。如果有人能给我一个关于什么技术可行的起点或实现这一目标的任何想法,那就太好了!
谢谢
【问题讨论】:
标签: c# silverlight windows-phone-7 slider
您可以使用来自Silverlight Toolkit 的 GestureListener。查看随 SL Toolkit 提供的示例应用程序。有一个示例页面 GestureSample.xaml。您将在那里找到如何检测手势。
【讨论】:
一种方法是使用Manipulation events。因此,例如,您在 ManipulationStarted 事件的 ManipulationOrigin 属性中获得起始位置。然后,您可以在 ManipulationCompleted 事件的 Manipulation 属性中获得最终位置。减去两个Y 分量并检查它是大于还是小于零。如果大于零,则用户向下移动,否则用户向上移动。
private void LayoutRoot_ManipulationStarted(object sender, System.Windows.Input.ManipulationStartedEventArgs e)
{
startY = e.ManipulationOrigin.Y;
}
private void LayoutRoot_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
endY = e.ManipulationOrigin.Y;
if(endY - startY > 0)
MessageBox.Text("Down")
else
MessageBox.Text("Up");
//add check to see if it equals zero in which case the user didn't swipe
}
或者,您可以使用Silverlight Toolkit 或XNA Gestures 执行类似的操作。 (它们都略有不同)。
【讨论】: