コード例 #1
0
        private void RefreshMasterBehavior(MasterBehaviorType masterBehaviorType)
        {
            int detailWidthRequest = 0;

            Gdk.Point point = default(Gdk.Point);

            switch (_masterBehaviorType)
            {
            case MasterBehaviorType.Split:
                detailWidthRequest = _lastAllocation.Width - DefaultMasterWidth;
                point = new Gdk.Point(_master.WidthRequest, 0);
                break;

            case MasterBehaviorType.Default:
            case MasterBehaviorType.Popover:
                detailWidthRequest = _lastAllocation.Width;
                point = new Gdk.Point(0, 0);
                break;
            }

            if (detailWidthRequest >= 0)
            {
                _detail.WidthRequest = detailWidthRequest;
                _detail.MoveTo(point.X, point.Y);
            }
        }
コード例 #2
0
        public MasterDetailPage()
        {
            _animationsEnabled  = false;
            _masterBehaviorType = MasterBehaviorType.Default;

            // Master Stuff
            _masterContainerWrapper            = new EventBox();
            _masterContainer                   = new VBox(false, 0);
            _titleContainer                    = new MasterDetailMasterTitleContainer();
            _titleContainer.HamburguerClicked += OnHamburgerClicked;
            _titleContainer.HeightRequest      = GtkToolbarConstants.ToolbarHeight;
            _masterContainer.PackStart(_titleContainer, false, true, 0);

            _master = new EventBox();
            _masterContainer.PackEnd(_master, false, true, 0);
            _masterContainerWrapper.Add(_masterContainer);

            // Detail Stuff
            _detail = new EventBox();

            Add(_detail);
            Add(_masterContainerWrapper);
        }