0

マルチタッチサポートにSurfaceSDKを使用しています。2つのスライダーを同時に動かす必要がありました...

私はいくつかのSurfaceSliderを作成しましたが、コントロールが移動後にある程度の慣性を行うことを除いて、うまく機能します...

慣性を無効にする方法はありますか?Webで検索しましたが、何も見つかりませんでした...オプションなどが提供されていません...

私の問題を解決するためにさらに情報が必要な場合は、教えてください...

ありがとう

更新:私はこのような独自のスライダーを作成しようとしましたが、機能しません...

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

}

編集

最後に、EliArbelのコメントで答えを見つけました。SurfaceSliderをリソースxamlファイルで宣言しているので、.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に置き換えました。

4

2 に答える 2

2

次のイベントを使用できます。

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

そして、それを処理済みとしてマークします。

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

補足として、フリック機能が必要ない場合は、通常のスライダーを使用できます。マルチタッチはWPF4に組み込まれています。

于 2012-04-17T09:15:21.083 に答える
0

スライダーのOnManipulationDeltaメソッドにハンドラーを追加します...

ScatterViewで慣性を無効にする方法

http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.controls.surfaceslider.onmanipulationdelta.aspx

于 2012-04-16T19:00:24.160 に答える