在窗口范围内保持弹出窗口

我正在尝试在按钮下显示弹出窗口。

这就是现在的样子:

在此处输入图像描述 但我希望它保持在窗口边界内,就像这样(油漆中的例子)

在此处输入图像描述

这是我在顶部声明弹出窗口的顶部栏:

                                                        

我通过设置自定义位置来修复它:

  

在我的usercontrol的构造函数后面我添加了代码

 OptionsMenuPopup.CustomPopupPlacementCallback += (Size popupSize, Size targetSize, Point offset) => new[] { new CustomPopupPlacement() { Point = new Point(targetSize.Width - popupSize.Width, targetSize.Height) } }; 

您可以使用SystemParameters.PrimaryScreenHeight的组合和Popup的左上角来计算您有多少空间,并将其设置为Popup内容的MaxHeight和MaxWidth。