private static IEnumerable<PopupPlacement> GetPlacementModesInOrderOfPreference(PopupPlacement preferredPlacementMode)
{
yield return preferredPlacementMode;
switch (preferredPlacementMode)
{
case PopupPlacement.Top:
yield return PopupPlacement.Bottom;
yield return PopupPlacement.Left;
yield return PopupPlacement.Right;
yield break;
case PopupPlacement.Bottom:
yield return PopupPlacement.Top;
yield return PopupPlacement.Left;
yield return PopupPlacement.Right;
yield break;
case PopupPlacement.Left:
yield return PopupPlacement.Right;
yield return PopupPlacement.Top;
yield return PopupPlacement.Bottom;
yield break;
case PopupPlacement.Right:
yield return PopupPlacement.Left;
yield return PopupPlacement.Top;
yield return PopupPlacement.Bottom;
yield break;
}
}