2

そこで、WPF で独自のカルーセル コントロールを作成しました。私はバグに出くわし、メソッド呼び出し、一連のメソッド呼び出し、またはいくつかの回避策のように、これを修正する方法を誰かが知っているかどうか疑問に思っていました. これが私のカルーセルの印刷画面です。

カルーセル画像 http://img4.imageshack.us/img4/9599/carousele.jpg

この画像ではっきりとわかるように、私のマウス ポインターは 16 と書かれたボタンの上にあります。しかし、18 と書かれたボタンは、マウスがそのボタンの上にあるかのように青いボタンです。また、ツールチップをコンテンツにバインドするように設定すると、ツールチップには、マウスが 18 個のボタンの上にあることが示されます。18 はボタンの z-index 値であるため、これは正しい動作です。したがって、18 のボタンは 16 のボタンの上にある必要があります。しかし、WPF はそのような方法でキャンバスをレンダリングしませんでした。これを克服する方法を考えていました。canvas.InvalidateArranage()、canvas.invalidateVisual()、canvas.UpdateLayout() を試しましたが、うまくいきませんでした。キャンバスの左側には本来あるべき姿が示されていますが、右側では z-index 値が正しいにもかかわらず、同じ結果が得られません。

4

1 に答える 1

5

wpf では、技術的にはあなたのマウスは 18 歳以上です。イベントがトリガーされる (可能性がある) 方法は次のとおりです。

I'm over "16", マウスオーバーで 16 を呼び出します I'm over "18", マウスオーバーで 18 を呼び出します

18 が最後に呼び出されたので、それが選択されます (これも私の推測です)。

mousemove イベント (私は mousemove と仮定します) のイベント引数で、必ず e.Handled = true を設定してください。この方法では一度だけ処理されます。

于 2009-11-09T22:39:10.220 に答える