As a bit of background - Windows has a facility for Touch/TabletPCs whereby it shifts the position of popups/menus depending on your \"handedness\" (to prevent the menu appearin
SystemParameters.MenuDropAlignment is used in a single method:
System.Windows.Controls.Primitives.Popup.GetPointCombination()
This private method has logic that depends upon the value of Popup.Placement, which is of type PlacementMode:
public enum PlacementMode
{
Absolute,
Relative,
Bottom,
Center,
Right,
AbsolutePoint,
RelativePoint,
Mouse,
MousePoint,
Left,
Top,
Custom
}
In GetPointCombination(), it only checks the MenuDropAlignment when the PlacementMode is Relative, AbsolutePoint, RelativePoint, or MousePoint. If you can use one of the other PlacementModes then you won't be subject to the MenuDropAlignment check.
If you use PlacementMode.Custom, then you'll also want to set the Popup.CustomPopupPlacementCallback to a valid method in order to provide your popup's CustomPopupPlacement[] coordinates.
Source: Reflector