2013-07-07 69 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起初,我不明白爲什麼我能夠「撤消」評論......嘻嘻 –