public void Show(OverlayContent overlayContent) { if (OverlayContent != null) { throw new InvalidOperationException($"Show {overlayContent.ComponentTypeName} while {OverlayContent.ComponentTypeName} not yet closed."); } OverlayContent = overlayContent; IsVisible = true; StateHasChanged(); }
public void AddOverlay(VisualElement ve, OverlayContent content = OverlayContent.All) { OverlayData overlayData = null; if (!m_OverlayData.TryGetValue(ve, out overlayData)) { overlayData = new OverlayData(ve, kDefaultHighlightAlpha); m_OverlayData[ve] = overlayData; } overlayData.content = content; }
public void Close(OverlayContent overlayContent) { // Check for already closed: if (overlayContent != OverlayContent) { return; } OverlayContent = null; IsVisible = false; StateHasChanged(); }
protected OverlayContentView(bool isChildOfNavigationPage) { _backgroundOverlayBoxView = new BoxView { BackgroundColor = ColorConstants.WhiteWith75Opacity }; _backgroundOverlayBoxView.Opacity = 0; _overlayFrame = new Frame { HasShadow = true, BackgroundColor = Color.White }; _overlayFrame.Scale = 0; _relativeLayout = new RelativeLayout(); _relativeLayout.Children.Add(_backgroundOverlayBoxView, Constraint.Constant(-10), Constraint.Constant(0), Constraint.RelativeToParent(parent => parent.Width + 20), Constraint.RelativeToParent(parent => parent.Height)); _relativeLayout.Children.Add(_overlayFrame, Constraint.RelativeToParent(parent => { var preferredX = parent.Width / 2 - getOverlayContentWidth(parent) / 2 - 25; return(preferredX < 10 ? 10 : preferredX); }), Constraint.RelativeToParent(parent => { if (isChildOfNavigationPage) { return(parent.Height / 4 - getOverlayContentHeight(parent) / 2); } return(parent.Height / 2 - getOverlayContentHeight(parent) / 2 - 10); }), Constraint.RelativeToParent(parent => { var preferedWidth = getOverlayContentWidth(parent) + 50; return(preferedWidth > parent.Width ? parent.Width - 20 : preferedWidth); }), Constraint.RelativeToParent(parent => getOverlayContentHeight(parent) + 40)); double getOverlayContentHeight(RelativeLayout p) => OverlayContent?.Measure(p.Width, p.Height).Request.Height ?? default; double getOverlayContentWidth(RelativeLayout p) => OverlayContent?.Measure(p.Width, p.Height).Request.Width ?? default; }
protected OverlayContentView(bool isChildOfNavigationPage) { _backgroundOverlayBoxView = new BoxView { BackgroundColor = ColorConstants.WhiteWith75Opacity }; _backgroundOverlayBoxView.Opacity = 0; _overlayFrame = new Frame { HasShadow = true, BackgroundColor = Color.White }; _overlayFrame.Scale = 0; _relativeLayout = new RelativeLayout(); Func <RelativeLayout, double> getOverlayContentHeight = (p) => OverlayContent.Measure(_relativeLayout.Width, _relativeLayout.Height).Request.Height; Func <RelativeLayout, double> getOverlayContentWidth = (p) => OverlayContent.Measure(_relativeLayout.Width, _relativeLayout.Height).Request.Width; _relativeLayout.Children.Add(_backgroundOverlayBoxView, Constraint.Constant(-10), Constraint.Constant(0), Constraint.RelativeToParent(parent => parent.Width + 20), Constraint.RelativeToParent(parent => parent.Height) ); _relativeLayout.Children.Add(_overlayFrame, Constraint.RelativeToParent(parent => parent.Width / 2 - getOverlayContentWidth(parent) / 2 - 25), Constraint.RelativeToParent(parent => { switch (isChildOfNavigationPage) { case true: return(parent.Height / 4 - getOverlayContentHeight(parent) / 2); default: return(parent.Height / 2 - getOverlayContentHeight(parent) / 2 - 10); } }), Constraint.RelativeToParent(parent => getOverlayContentWidth(parent) + 50), Constraint.RelativeToParent(parent => getOverlayContentHeight(parent) + 40) ); }
public void Close() => OverlayContent?.Close();