void HandlePropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "Master" || e.PropertyName == "Detail") { UpdateMasterDetailContainers(); } else if (e.PropertyName == MasterDetailPage.IsPresentedProperty.PropertyName) { Presented = ((MasterDetailPage)Element).IsPresented; } else if (e.PropertyName == MasterDetailPage.IsGestureEnabledProperty.PropertyName) { UpdatePanGesture(); } else if (e.PropertyName == VisualElement.BackgroundColorProperty.PropertyName) { UpdateBackground(); } else if (e.PropertyName == Page.BackgroundImageSourceProperty.PropertyName) { UpdateBackground(); } else if (e.PropertyName == "WidthRatio") { widthRatio = ((MyMasterDetailPage)Element).WidthRatio; } else if (e.PropertyName == "RenderMode") { renderMode = ((MyMasterDetailPage)Element).RenderMode; } }
public MyMasterDetailPage() { InitializeComponent(); MasterPage.ListView.ItemSelected += ListView_ItemSelected; WidthRatio = (float)0.6; RenderMode = MasterDetailType.Overlay; }
public void SetElement(VisualElement element) { var oldElement = Element; Element = element; Element.SizeChanged += PageOnSizeChanged; _masterController = new ChildViewController(); _detailController = new ChildViewController(); //_detailController.View.BackgroundColor = new Color(0, 0, 0, 0.5).ToUIColor(); _clickOffView = new UIView(); _clickOffView.BackgroundColor = new Color(0, 0, 0, 0).ToUIColor(); //_clickOffView.BackgroundColor = _clickOffView.BackgroundColor.ColorWithAlpha((nfloat)0.5); _opacityView = new UIView(); _opacityView.BackgroundColor = new Color(0, 0, 0, 0).ToUIColor(); Presented = ((MasterDetailPage)Element).IsPresented; OnElementChanged(new VisualElementChangedEventArgs(oldElement, element)); widthRatio = ((MyMasterDetailPage)element).WidthRatio; renderMode = ((MyMasterDetailPage)element).RenderMode; var tEffectUtilities = typeof(PlatformEffect).Assembly.GetTypes().FirstOrDefault(x => x.Name.EndsWith("EffectUtilities")); tEffectUtilities.InvokeMember("RegisterEffectControlProvider", System.Reflection.BindingFlags.InvokeMethod, null, null, new object[] { this, oldElement, element }); var sendViewInitialized = typeof(Forms).GetMethod("SendViewInitialized", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); sendViewInitialized.Invoke(null, new object[] { element, NativeView }); }