1

ユーザーコントロールのツールチップをカスタマイズして、コールアウトのように見せています。ツールチップは、コントロール(Placement = Top)の上に、下向きの矢印で表示されるように設定されています。

問題は、コントロールが画面の端の近くにある場合、ツールチップがコントロールの左側に配置されていないことです。その結果、矢印はコントロールの左側にある空のスペースを指しています。

さらに悪いことに、コントロールが画面の上部にある場合、ツールチップはターゲットコントロールの下に表示され、矢印は下向きになります。

これを解決する方法はありますか?プログラムでツールチップをその場で作成する方法、またはツールチップのいくつかのプロパティに基づいてスタイルを選択するトリガーを設定する方法を探していますが、方法がわかりません。

4

1 に答える 1

1

私は過去に同じ問題に直面しました。私がしたことは、PlacementTargetビアPointToScreen(new Point(0,0))の位置を取得しToolTip、同じメソッドを呼び出して計算を行い、ToolTipが正しく配置されているかどうかを判断することで、の位置を取得することでした。そうでない場合は、左、右、上、下のいずれに表示されているかによって、Placementのを変更しました。また、それはレンダリングされた後にのみ機能するので、ハンドラーをにアタッチしてそこで実行することを覚えておいてください。これがお役に立てば幸いです。この問題を解決するためのより効率的/より良い方法に出くわした場合はお知らせください。ToolTipPlacementTargetPointToScreen()ToolTipToolTip.Open

于 2012-09-14T20:38:55.387 に答える