wpf 不是很明白,先记下

  LocationChanged += new EventHandler(RuntimePopup_LocationChanged);

 void RuntimePopup_LocationChanged(object sender, EventArgs e)
        {
            var mi = typeof(Popup).GetMethod("UpdatePosition", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            mi.Invoke(popusBottom, null);
        }

原文地址:https://www.cnblogs.com/aggierwyp/p/UpdatePosition.html