Browse Source

fixed popup, and context menu.

pull/405/head
danwalmsley 11 years ago
parent
commit
d043e4b67a
  1. 5
      src/Perspex.Controls/ContextMenu.cs
  2. 9
      src/Perspex.Controls/Primitives/Popup.cs

5
src/Perspex.Controls/ContextMenu.cs

@ -89,12 +89,13 @@
_popup = new Popup() _popup = new Popup()
{ {
PlacementTarget = control, PlacementTarget = control,
Child = new ContentControl(), StaysOpen = false
}; };
} }
((ISetLogicalParent)_popup).SetParent(control); ((ISetLogicalParent)_popup).SetParent(control);
_popup.Child = control.ContextMenu;
_popup.Open(); _popup.Open();
control.ContextMenu._isOpen = true; control.ContextMenu._isOpen = true;

9
src/Perspex.Controls/Primitives/Popup.cs

@ -172,13 +172,16 @@ namespace Perspex.Controls.Primitives
_popupRoot.Position = GetPosition(); _popupRoot.Position = GetPosition();
if (_topLevel == null) if (_topLevel == null && PlacementTarget != null)
{ {
_topLevel = PlacementTarget.GetSelfAndLogicalAncestors().First(x => x is TopLevel) as TopLevel; _topLevel = PlacementTarget.GetSelfAndLogicalAncestors().First(x => x is TopLevel) as TopLevel;
} }
_topLevel.Deactivated += TopLevelDeactivated; if (_topLevel != null)
_topLevel.AddHandler(PointerPressedEvent, PointerPressedOutside, RoutingStrategies.Tunnel); {
_topLevel.Deactivated += TopLevelDeactivated;
_topLevel.AddHandler(PointerPressedEvent, PointerPressedOutside, RoutingStrategies.Tunnel);
}
PopupRootCreated?.Invoke(this, EventArgs.Empty); PopupRootCreated?.Invoke(this, EventArgs.Empty);

Loading…
Cancel
Save