2013-07-07 56 views
5

Tôi có Slider này trong WPF:Slider không làm việc với cảm ứng đầu vào

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

tôi có thể kéo con trỏ của thanh trượt với chuột, nhưng không phải với đầu vào cảm ứng.

Tôi cần làm gì để sử dụng thanh trượt với đầu vào cảm ứng?

Trả lời

4

Vì vậy, tôi đã tìm thấy giải pháp, nhờ liên kết được cung cấp bởi Agentlien.

Trong XAML, thêm một thuộc tính Touchdown:

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

(Tôi cũng loại bỏ các tài sản IsManipulationEnabled vì nó không phải là cần thiết ở đây)

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

Như thế này, thanh trượt có thể được sử dụng với cả chuột và đầu vào cảm ứng.

+0

Thấy như giải pháp này là những gì cố định vấn đề của bạn, bạn nên chọn nó như là câu trả lời được chấp nhận , vì vậy mọi người biết nơi để tìm. – Agentlien

+0

Nhờ nhắc nhở tôi! Tôi không thể trước vì tôi phải đợi thêm 1 ngày nữa :) và cảm ơn lần nữa vì sự giúp đỡ của bạn! –

+0

Bạn rất hoan nghênh. :) Nó luôn luôn tốt đẹp có thể giúp đỡ. Tôi vừa tình cờ gặp khó khăn với một vấn đề tương tự khi tìm kiếm trên Google của tôi mang cả liên kết tôi đã cung cấp và liên kết đến câu hỏi này. Vì vậy, tôi figured tôi tốt nhất kết nối hai. – Agentlien

3

Có vẻ với tôi như bạn có thể bị vấn đề được mô tả ở đây:

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

Nói tóm lại: IsManipulationEnabled ảnh hưởng đến việc liên lạc sẽ tạo ra một sự kiện chuột hay không nếu trường hợp cảm ứng không phải là được xử lý, vì vậy bạn cần đảm bảo xử lý sự kiện chính xác.

+0

Cảm ơn bạn! Với liên kết bạn cung cấp, tôi đã có thể giải quyết vấn đề của mình. Nhưng nó không phải là một cái gì đó về tài sản IsManipulationEnabled. Tôi sẽ thêm câu trả lời của riêng tôi, nhưng như bạn cũng hữu ích tôi sẽ upvote nó ngay khi tôi có thể (> 15 đại diện). –

+0

@ MichaëlPolla Bạn hiện đã hơn 15 tuổi. – Undo

+0

@Hoàn tác: đã hoàn tất! ... funny nickname bằng cách :-D Lúc đầu, tôi không hiểu tại sao tôi có thể "Undo" một bình luận ... hehe –