2013-07-07 53 views
5

工作,我在WPF这个滑块:滑块不与触摸输入

<Slider x:Name="SizeSlider" IsManipulationEnabled="True" Width="100" Minimum="1" Maximum="10" Value="1" ValueChanged="SizeSlider_ValueChanged"></Slider> 

我可以拖动滑块的光标用鼠标,但不是触摸输入。

为了在触摸输入中使用滑块,我需要做些什么?

回答

4

所以我找到了解决方案,感谢Agentlien提供的链接。

在XAML中,添加一个达阵属性:

<Slider x:Name="SizeSlider" Width="100" Minimum="1" Maximum="10" Value="1" ValueChanged="SizeSlider_ValueChanged" TouchDown="SizeSlider_TouchDown"/> 

(我也删除了IsManipulationEnabled属性,因为它是不是在这里有必要)

在C#代码隐藏:

private void SizeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
{ 
    // Things you want to do everytime slider's value change 
    // For example : 
    _brushSize = e.NewValue; 
} 


private void SizeSlider_TouchDown(object sender, TouchEventArgs e) 
{ 
    // Mark event as handled 
    e.Handled = true; 
} 

像这样,滑块可以用于鼠标和触摸输入。

+0

看到这种解决方案是什么解决了你的问题,你应该选择它作为接受的答案,所以人们知道去哪里看。 – Agentlien

+0

谢谢提醒我!我不能在此之前,因为我不得不再等一天:)并再次感谢您的帮助! –

+0

非常欢迎。 :)能够提供帮助总是很好的。当我的Google搜索带来了我提供的链接和这个问题的链接时,我碰巧遇到了类似的问题。所以,我想我最好连接这两个。 – Agentlien

3

它看起来像你对我可以从这里描述的问题的痛苦:

http://nui.joshland.org/2010/04/why-wont-wpf-controls-work-with-touch.html

简而言之:IsManipulationEnabled影响触摸是否生成鼠标事件或不如果触摸事件不是处理,所以你需要确保处理正确的事件。

+0

谢谢!通过您提供的链接,我可以解决我的问题。但它不是关于IsManipulationEnabled属性的东西。我会添加自己的答案,但作为你的答案也是有帮助的,我会尽快答复它(> 15代表)。 –

+0

@MichaëlPolla现在你已经15岁了。 – Undo

+0

@撤消:完成! ...有趣的昵称的方式: - D起初,我不明白为什么我能够“撤消”评论......嘻嘻 –