0

DragDelta イベントをサポートする Canvas が必要です。これを行う方法についての最初のアイデアは、つまみを含む ControlTemplate を作成することでした。しかし、これを正しく行う方法がわかりません。以下の XAML を変更してコンパイルするにはどうすればよいですか?また、DragDelta イベント ハンドラーをインストールする正しい方法は何ですか?

<UserControl.Resources>
    <ControlTemplate x:Key="Transparent">
        <Rectangle Fill="Transparent"/>
    </ControlTemplate>
    <ControlTemplate x:Key="ThumbCanvas" TargetType="{x:Type Canvas}">
        <Grid>
            <Thumb x:Name="CanvasThumb" Template="{StaticResource Transparent}" DragDelta="CanvasThumb_DragDelta"/>
            <ContentPresenter Content="{TemplateBinding Content}"/>
            <!--error MC3011: Cannot find the static member 'ContentProperty' on the type 'Canvas'.-->
        </Grid>
    </ControlTemplate>
</UserControl.Resources>
4

1 に答える 1

1

パネルから派生したコントロールには、目に見えるコンポーネントがないため、テンプレート プロパティがありません。

あなたがやっているように、UserControl 内で Thumb コントロールを使用し、Thumb のデルタに基づいて UserControl の高さ/幅を調整することができます。これを正しく機能させるには、ユーザーコントロールの親に対するマウスの位置を取得する必要があります。そうしないと、うまく機能しません。すなわち: e.GetLocation(this.Parent);

おそらく、その親指の高さ/幅も調整する必要があります。その上にカーソルを設定することもお勧めします。

于 2009-05-12T15:59:52.460 に答える