2012-04-12 63 views
0

我正在使用Surface SDK進行多點觸控支持。我需要在同一時間移動滑塊2 ...如何禁用Surface SDK的慣性?

我已經創造了一些SurfaceSlider,效果很好,但移動後的控制做一些慣性...

是否有禁用方法慣性?我在網上搜索,我沒有找到任何東西......他們不提供任何選項或類似的東西...

如果您需要更多信息來解決我的問題,請告訴我...

感謝

更新: 我努力使自己的滑塊這樣,但它不工作...

public class WtoSurfaceSlider : SurfaceSlider 
{ 

    #region " Ctors " 
    static WtoSurfaceSlider() 
    { 
     // Override metadata with style defined in themes xaml 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(WtoSurfaceSlider), new FrameworkPropertyMetadata(typeof(WtoSurfaceSlider))); 
    } 

    public WtoSurfaceSlider() 
    { 
     Name = "New" + GetType().Name; 
    } 
    #endregion 

    #region " Method " 

    protected override void OnManipulationDelta(ManipulationDeltaEventArgs e) 
    { 
     if (e.IsInertial) 
     { 
      e.Complete(); 
      e.Handled = true; 
     } 
    } 

    #endregion 

} 

編輯

最後,我發現我的答案是Eli Arbel的評論。我在資源xaml文件中聲明我的SurfaceSlider,所以我沒有.cs。 因此,這正常工作對我來說:

public class WtoSurfaceThumb : SurfaceThumb 
{ 

    #region " Ctors " 

    static WtoSurfaceThumb() 
    { 
     // Override metadata with style defined in themes xaml 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(WtoSurfaceThumb), new FrameworkPropertyMetadata(typeof(WtoSurfaceThumb))); 
    } 

    public WtoSurfaceThumb() 
    { 
     Name = "New" + GetType().Name; 

     PreviewFlicked += new FlickEventHandler(WtoSurfaceThumb_PreviewFlicked); 
    } 

    #endregion 

    #region " Method " 

    private void WtoSurfaceThumb_PreviewFlicked(object sender, FlickEventArgs e) 
    { 
     e.Handled = true; 
    } 

    #endregion 

} 

而且我全部換成了SurfaceThumb在我的應用程序通過WtoSurfaceThumb。

回答

2

您可以使用以下事件:

<s:SurfaceSlider s:SurfaceThumb.PreviewFlicked="OnPreviewFlicked" /> 

並將其標記爲處理:

private void OnPreviewFlicked(object sender, FlickEventArgs e) 
{ 
    e.Handled = true; 
} 

作爲一個說明 - 如果您不需要輕彈功能,則可以使用常規滑塊。多點觸控內置於WPF 4.

+0

我會試試這個。但是你確定WPF 4的滑塊可以管理多點觸控嗎?我已經嘗試了很多東西,並且我從來沒有能夠同時移動2 Slider,總是有一個需要所有的輸入... – mlemay 2012-04-17 10:43:48

+0

我不能寫第一行,s:SurfaceThumb不存在於SurfaceSlider的同一支架中(對我來說),它允許我放置的唯一「Surface」對象是SurfaceScrollViewer – mlemay 2012-04-17 11:05:34

+0

您是否使用Surface 2.0 SDK ? – 2012-04-17 11:49:03

0
+0

是否需要創建繼承SurfaceSlider的類並添加OnManipulationDelta? – mlemay 2012-04-16 20:15:00

+0

假設你有一個實例,你應該可以像上面的第一個鏈接一樣將事件傳遞給事件處理程序。 – Trent 2012-04-16 20:55:02

+0

我沒有在我的代碼隱藏的實例,我不想要一個,這是一個通用的代碼 – mlemay 2012-04-16 20:57:43