1

wpfポップアップを使用するときに問題が発生します。つまり、次のようになります。

ポップアップの位置が変わることをどうやって知ることができますか?

例えば:

ポップアップがあり、その配置が下に設定されていますが、ウィンドウを隅に移動すると、配置が上に変わりますが、実際にはそうではありません。ポップアップが開いたイベントに従ってデバッグします。どうすれば変化を知ることができるのか知りたいので、先端の背景を変形させることができます!ありがとう。

あなたはここでデモ写真を見ることができます:

http://i.stack.imgur.com/lxOVl.jpg

http://i.stack.imgur.com/wWEAQ.jpg

4

1 に答える 1

1

私も同じ問題を抱えていました。私の場合、ポップアップは常にウィンドウ上にあります(ページではありません)。Windowイベントに登録することで問題を解決しました:LocationChangedおよびSizeChanged:

        Window w = Window.GetWindow(this);
        if (w != null)
        {
            w.LocationChanged += windowLocationChanged;
            w.SizeChanged += windowLocationChanged;
        }

ポップアップをウィンドウ(またはその中のコントロール)に再配置するには、次のトリックを使用します。

        if (!_popup.IsOpen)
            return;

        if (_popup.VerticalOffset == 0.1)
            _popup.VerticalOffset = 0;
        else
            _popup.VerticalOffset = 0.1;

VerticalOffsetを設定すると、ポップアップの再配置がトリガーされ、値が小さいとポップアップがピクセル境界内に保持されます。

于 2012-12-13T08:14:31.623 に答える