1

ツールチップではなく、テンプレート化されたポップアップを使用して、コントロールの検証エラーを表示することにしました (スタイリングに関して柔軟性が高いようです)。ポップアップが参照しているコントロールに固定されていることを確認するためのクリーンな方法を探しているので、ウィンドウが移動すると一緒に移動します...

私が考えていたのは、ビジュアル ツリーをたどってすべての PopUps IsOpen プロパティを手動で false に設定することでした...これはちょっとした「ハック」のようです。おそらく他のものの間でちらつくので、理想的とは言えません... これまでスタックオーバーフローで見た多くのソリューションにも落とし穴があるようです。アイデア?

4

1 に答える 1

1
// Reference to the PlacementTarget.
DependencyObject myPopupPlacementTarget;

// Reference to the popup.
Popup myPopup; 

Window w = Window.GetWindow(myPopupPlacementTarget);
if (null != w)
 {
w.LocationChanged += delegate(object sender, EventArgs args)
{
    var offset = myPopup.HorizontalOffset;
    myPopup.HorizontalOffset = offset + 1;
    myPopup.HorizontalOffset = offset;
    };


}

このリンクから

于 2013-01-30T11:55:28.067 に答える