0

ファイルのデータを 2D グラフにプロットする WPF アプリケーションを開発しました。ユーザーは、マウスを使用してズームとパンを行うことができます。複数の図面を WPF TabControl の異なるタブにロードできます。描画自体は、TabItem 内の Grid によって保持されます。

ファイルを読み取って対応するチャートを生成するたびに、マウス イベントをチャートを保持するグリッドに接続しています。

マウス イベントが最後に読み込まれたチャートに接続されるようになり、他の TabItem を選択して戻すと、それを制御 (ズーム/パン) できなくなります。

切り替えた TabItem で、マウス イベントをグリッドに再接続する方法が見つかりませんでした。

何か手がかりをいただければ幸いです。

モティ

4

1 に答える 1

0

おそらく、ハンドラーをグリッドの MouseEnter イベントに接続できます。その後、マウスイベントを接続できます。

グリッドの作成時:

grid.MouseEnter="Grid_MouseEnter"

MouseEnter ハンドラ:

private void Grid_MouseEnter(object sender, MouseEventArgs e)
{
    var grid = sender as Grid;
    if (grid == null)
        return;

    grid.MouseWheel += a1_MouseWheel;
}

MouseWheel ハンドラ

private void a1_MouseWheel(object sender, MouseWheelEventArgs e)
{
    var grid = sender as Grid;
    System.Diagnostics.Debug.WriteLine(grid.Name + " " + e.Delta);
}

グリッドのマウスイベントからハンドラーを削除したと思います!?

于 2012-05-02T16:11:00.663 に答える