【问题标题】:How to make a Popup sticky to Window / move with Window in WPF如何使弹出窗口粘在窗口上/在 WPF 中随窗口移动
【发布时间】:2022-01-12 08:22:29
【问题描述】:

在 WPF 中,我有带有一些按钮的窗口。目前我有这个功能:我单击一个按钮,然后弹出按钮下方的弹出窗口。

我的目标是当拖动主窗口弹出窗口与窗口一起移动时,弹出窗口保持在按钮下方。

目前我正在使用此代码,但它似乎不起作用 - 弹出窗口,但当拖动主窗口时,弹出窗口停留在同一个地方。

这是我的代码:

    private void Window_LocationChanged(object sender, EventArgs e)
    {
        ResetPopUp();
    }

    private void ResetPopUp()
    {
        var offsetHor = popup.HorizontalOffset;
        var offsetVer = popup.VerticalOffset;

        popup.HorizontalOffset = offsetHor + 1;
        popup.HorizontalOffset = offsetHor - 1;

        popup.VerticalOffset = offsetVer + 1;
        popup.VerticalOffset = offsetVer - 1;
    }

如果您有任何答案,我将不胜感激!

【问题讨论】:

标签: c# .net wpf xaml popup


【解决方案1】:

您可以结合弹出窗口的 PlacementTarget 和 Placement 属性来实现其相对于/居中于其父级的定位

如果您希望弹出位置位于父级的中心,则如下所示

        <Popup
            PlacementTarget="{Binding ElementName = "parent_container_windowname"}"
            Placement="Center">
        </Popup>

如果您想将弹出窗口放置在父级的左上角,那么您可以使用 Placement="相对"

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多