2013-07-07 10 views
5

ho questa Slider in WPF:Slider non funziona con il tocco di ingresso

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

posso trascinare il cursore del cursore con il mouse, ma non con l'input tocco.

Cosa devo fare per utilizzare il cursore con input tattile?

risposta

4

Quindi ho trovato la soluzione, grazie al collegamento fornito da Agentlien.

in XAML, aggiungere un attributo TouchDown:

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

(ho anche tolto la proprietà IsManipulationEnabled in quanto non è necessario qui)

In C# code-behind:

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; 
} 

In questo modo, il cursore può essere utilizzato sia con il mouse che con il tocco.

+0

Vedendo come questa soluzione è ciò che ha risolto il tuo problema, dovresti sceglierlo come risposta accettata , quindi le persone sanno dove guardare. – Agentlien

+0

Grazie per ricordarmelo! Non potevo prima perché ho dovuto aspettare un altro giorno :) e grazie ancora per il tuo aiuto! –

+0

Siete i benvenuti. :) È sempre bello poterti aiutare. Mi è capitato di essere alle prese con un problema simile quando la mia ricerca su Google ha portato sia il link che ho fornito sia un link a questa domanda. Quindi, ho pensato che sarebbe meglio collegare i due. – Agentlien

3

Sembra a me come si può essere affetti dal problema descritto qui:

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

In breve: IsManipulationEnabled determina se il contatto genera un evento del mouse o meno se l'evento touch non è gestito, quindi è necessario assicurarsi di gestire l'evento corretto.

+0

Grazie! Con il link che hai fornito, sono stato in grado di risolvere il mio problema. Ma non era qualcosa sulla proprietà IsManipulationEnabled. Aggiungerò la mia risposta, ma poiché anche il tuo è stato utile, lo invierò non appena possibile (> 15 ripetizioni). –

+0

@ MichaëlPolla Hai più di 15 anni. – Undo

+0

@Undo: done! ... soprannome divertente a proposito :-D All'inizio non capivo perché ero in grado di "annullare" un commento ... hehe –

Problemi correlati