0

私は、マウスから予定のサイズを変更できるようにする必要がある、一種のOutlookカレンダーアプリケーションを開発しています。親指での最初の試行は正しく機能しなかったので、別の方法を試しました。

私がしたことはそれです:

1)予定パネルの下部に、サイズ変更ゾーン(親指)を把握するために長方形を追加しました。アポイントメントパネルはグリッドパネルに配置されます。2)長方形のダウンイベントをインターセプトし、次のコードにイベントを送信します。

private Point startPoint;
private void OnResizeElementMouseDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
    this.MouseMove += new MouseEventHandler(ResizeEndElement_MouseMove);
    this.MouseLeftButtonUp += new MouseButtonEventHandler(OnResizeElementMouseUp);
    // some code to perform new height computation
    Mouse.Capture(this);
}

ここで、これは親指を所有する予定パネルです。

高さを下げるとうまくいきます。しかし、増やすのはもっと難しいです。マウスを非常にゆっくり動かすと問題ありません。少し速くすると、予定パネルが省略される傾向があり、MouseMoveイベントがすべて失われます。

Mouse.Capture()はこの種の問題を解決するために提案されたと思いましたが、実際にはそうではありませんでした。

誰かが私のコードの何が悪いのか知っていますか?

4

2 に答える 2

1

親指を使用する必要がありますが、マウス キャプチャで遊ぶには、protected override void OnLostMouseCapture(MouseEventArgs e)メソッドをオーバーライドすると、キャプチャが失われたかどうかがわかります。

于 2010-01-05T02:28:14.980 に答える
1

Thumb実際のコントロールを使用する必要があります。ヘルプについては、MSDN を参照してください。

方法: Thumb を使用してドラッグを有効にする

于 2010-01-04T19:15:45.183 に答える