我正在開發Windows Phone 7應用程序。我有幾個頁面上的滑塊控件。但是,當我轉到應用程序中的某個頁面時,每個頁面中的所有滑塊控件都表現得很奇怪。WP7滑塊奇怪行爲
症狀是用戶只能將滑塊上的拇指拖動到非常短的範圍內。
我提到的某些頁面在代碼和XAML中沒有問題。爲什麼它會導致所有滑塊行爲錯誤?
我正在開發Windows Phone 7應用程序。我有幾個頁面上的滑塊控件。但是,當我轉到應用程序中的某個頁面時,每個頁面中的所有滑塊控件都表現得很奇怪。WP7滑塊奇怪行爲
症狀是用戶只能將滑塊上的拇指拖動到非常短的範圍內。
我提到的某些頁面在代碼和XAML中沒有問題。爲什麼它會導致所有滑塊行爲錯誤?
問題是使用工具包手勢會導致滑塊行爲異常。因此,當開始在Slider上操作時,應該禁用手勢監聽器,然後在停止在Slider上操作時啓用它。
<Slider Height="84" Name="fixedSlider" ManipulationStarted="disableGestures" ManipulationCompleted="restoreGestures" />
GestureType prevGestureType;
private void disableGestures(object sender, ManipulationStartedEventArgs e)
{
prevGestureType = TouchPanel.EnabledGestures;
TouchPanel.EnabledGestures = GestureType.None;
fixedSlider.IsHitTestVisible = false;
}
private void restoreGestures(object sender, ManipulationCompletedEventArgs e)
{
TouchPanel.EnabledGestures = prevGestureType;
}
Slider類有財產SmallChange,如果你看滑塊模板,你會看到,當用戶點擊滑塊 - 值只改變小變化。如果您想避免這種情況,您需要創建自定義滑塊行爲。
你是什麼意思「值只改變小的變化」,我試着將SmallChange設置爲不同的值,但症狀仍然存在 – onmyway133
Slider繼承RangeBase。 RangeBase具有屬性SmallChange。在鏈接中,我提供了這個屬性的描述。在此頁面上有以下文本:「從RangeBase繼承的控件決定如何使用此屬性。例如,當用戶單擊自定義滾動條控件的軌跡時,Value屬性將增加或減少SmallChange的值。 」。如果你願意,滑塊的值恰好在那個地方,用戶點擊,那麼你需要從代碼中控制它。創建自定義行爲並在Tap事件中進行訂閱。 – Catherine
這是哪個滑塊控件? –
@RowlandShaw它是WP7中的標準滑塊控件。不知道某個頁面如何影響其他頁面中的所有其他滑塊 – onmyway133
同樣在這裏。 GestureListener訂閱一個事件並且從不退訂,所以它不會被釋放。 –