I just did something like this and it really is not that difficult, but it requires special placement of your popup. When you announce your popup, simply set the PlacementMode property to Custom, and then set the CustomPopupPlacementCallback property to the method you want to use.
this.trayPopup.CustomPopupPlacementCallback = GetPopupPlacement;
private static CustomPopupPlacement[] GetPopupPlacement(Size popupSize, Size targetSize, Point offset)
{
var point = SystemParameters.WorkArea.BottomRight;
point.Y = point.Y - popupSize.Height;
return new[] { new CustomPopupPlacement(point, PopupPrimaryAxis.Horizontal) };
}
source
share