0

いくつかのスライダーに基づいて Metro Xaml コントロールを作成しています。基本的に、スライダ サムの 1 つの ManipulationDelta イベント (具体的には X 軸に沿った移動) で、別のスライダ サムを同じ量だけ移動したいと考えています。私が遭遇した問題は、RenderTransform を使用してもう一方のつまみを移動しても、スライダーの値は変更されず、つまみの位置が表面的に変更されることです。

いくつかの計算を使用して親指の位置をスライダーの値に投影するよりも、スライダーの値を親指の位置に一致させる簡単な解決策はありますか?

編集:これは、私がやろうとしていることのより慎重で徹底的な説明です:

基本的に、プレビュー ウィンドウを表す UI コントロールを作成しようとしています。これは、プレビューしたい対応するビデオの一部を選択できる、伸縮可能で移動可能な (X 軸に沿った) バーです。

舞台裏では、2 つのスライダーを使用してプレビュー ウィンドウの左右のつまみを表し、2 つのスライダーのつまみを接続する長方形を使用して、長方形と 2 つのつまみをタンデムに移動できるようにします。2 つのスライダーのつまみを使用すると、ウィンドウを引き伸ばすことができます。

ストレッチは、長方形の幅を増やすことによって行われます。四角形による変換は、TranslateTransform オブジェクトを使用して行われます。

4

1 に答える 1

1

通常のスライダーコントロールでは、操作を処理したり、レンダリング変換を適用したりする必要はありません。一方のスライダーの値をもう一方のスライダーの値にバインドするだけで、それらは連携して移動します。

<StackPanel
    VerticalAlignment="Center"
    HorizontalAlignment="Center">
    <Slider
        Width="300"
        Minimum="0"
        Maximum="10"
        StepFrequency="0.1"
        Value="{Binding Value, ElementName=slider2, Mode=TwoWay}" />
    <Slider
        x:Name="slider2"
        Width="300"
        Minimum="0"
        Maximum="10"
        StepFrequency="0.1" />
</StackPanel>
于 2012-07-30T02:59:21.670 に答える