4

ポップアップを表示するボタンに単一のハンドラーを持つ非常に単純なアプリがあります。

private void Button_Click(object sender, RoutedEventArgs e)
{
    Popup popup =
        new Popup
        {
            Width = 200,
            Height = 20,
            Child = new Rectangle { Fill = Brushes.Fuchsia },
            PlacementTarget = (Button)sender,
            Placement = PlacementMode.Bottom,
            IsOpen = true,
        };
}

次の結果が得られます。

実際のポップアップの動作

配置モードを PlacementMode.Custom に変更し、コールバック (省略) を追加すると、次のことが実現できます。

望ましいポップアップ動作

ただし、これが PlacementMode.Bottom のデフォルトの動作になると思います。MSDN から:

PlacementMode = 下

コントロールが上端を PlacementTarget の下端に揃え、左端を PlacementTarget の左端に揃える Popup コントロールの位置。

MSDN 画像

ドキュメントを読み間違えているか、何か間違っていますか? 私の単純なアプリが、ドキュメントにあるように (少なくとも現在読んでいるように) 表示/動作しないのはなぜですか?

4

2 に答える 2

3

これは PC またはタブレットで実行されていますか? どうやら、タブレットの「利き手」設定により、ポップアップの配置の動作が変更されるようです。(右から左への言語が要因であるかどうかも調べてください。)

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/19ef3d33-01e5-45c5-a845-d64f9231001c

これ以外に、コード ビハインドではなく XAML アプローチを使用してみましたか?

于 2012-09-19T00:35:07.883 に答える
0

今日も同じ問題に遭遇しました - 他の 2 つのプロパティを使用して、ポップアップを配置する場所を調整できると思います (Horizo​​ntalOffset と VerticalOffset - 正と負の両方の数値を取ることができます)

http://www.c-sharpcorner.com/resources/699/how-to-position-a-popup-in-wpf.aspxの例

于 2013-02-17T09:09:41.130 に答える