예제 #1
0
 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;
     }
 }
예제 #2
0
        public MyMasterDetailPage()
        {
            InitializeComponent();
            MasterPage.ListView.ItemSelected += ListView_ItemSelected;

            WidthRatio = (float)0.6;
            RenderMode = MasterDetailType.Overlay;
        }
예제 #3
0
        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 });
        }