コード例 #1
0
        public SuggestionsView()
        {
            TranslatesAutoresizingMaskIntoConstraints = false;
            BackgroundColor = UIColor.White;
            ClipsToBounds   = true;

            heightConstraint = HeightAnchor.ConstraintEqualTo(0);
        }
コード例 #2
0
        public ActionButton()
        {
            BackgroundColor = ApplicationTheme.ActionBackgroundColor;
            SetTitleColor(ApplicationTheme.ActionForegroundColor, UIControlState.Normal);
            SetTitleColor(ApplicationTheme.ActionForegroundColor.ColorWithAlpha(0.5f), UIControlState.Disabled);
            Layer.CornerRadius = ApplicationTheme.CornerRadius;

            HeightAnchor.ConstraintEqualTo(ApplicationTheme.ActionButtonHeight).Active = true;
        }
コード例 #3
0
 public NSLine(NSUserInterfaceLayoutOrientation orientation, int lineWidth = 1)
 {
     BoxType = NSBoxType.NSBoxSeparator;
     if (orientation == NSUserInterfaceLayoutOrientation.Horizontal)
     {
         HeightAnchor.ConstraintEqualToConstant(lineWidth).Active = true;
     }
     else if (orientation == NSUserInterfaceLayoutOrientation.Vertical)
     {
         WidthAnchor.ConstraintEqualToConstant(lineWidth).Active = true;
     }
 }
コード例 #4
0
        public ToggleButton(string optionKey, bool selected, float width, float height)
        {
            OptionKey = optionKey;

            WidthAnchor.ConstraintEqualTo(width).Active   = true;
            HeightAnchor.ConstraintEqualTo(height).Active = true;

            Layer.CornerRadius = 5;

            Selected       = selected;
            TouchUpInside += (sender, args) => Selected = !Selected;
        }
コード例 #5
0
        public override void MovedToSuperview()
        {
            base.MovedToSuperview();

            TopAnchor.ConstraintEqualTo(Superview.TopAnchor).Active         = true;
            WidthAnchor.ConstraintEqualTo(Superview.WidthAnchor).Active     = true;
            CenterXAnchor.ConstraintEqualTo(Superview.CenterXAnchor).Active = true;
            //Actual value is set with bindings a few lines below
            var heightConstraint = HeightAnchor.ConstraintEqualTo(1);

            heightConstraint.Active = true;

            prepareTitleLabel();
            prepareSuggestionViews();

            SetNeedsLayout();
            LayoutIfNeeded();

            this.DelayBind(() =>
            {
                var heightConverter = new CollectionSizeToHeightConverter <Suggestion>(
                    emptyHeight: emptyHeight,
                    heightPerElement: suggestionHeight + distanceBetweenSuggestions,
                    additionalHeight: distanceAbowTitleLabel
                    + distanceBelowTitleLabel
                    + (float)titleLabel.Frame.Height
                    );
                heightConverter.MaxCollectionSize = suggestionViews.Count;

                var bindingSet = this.CreateBindingSet <SuggestionsView, SuggestionsViewModel>();

                bindingSet.Bind(this)
                .For(v => v.BindVisibility())
                .To(vm => vm.IsEmpty);

                bindingSet.Bind(heightConstraint)
                .For(c => c.BindConstant())
                .To(vm => vm.Suggestions)
                .WithConversion(heightConverter);

                for (int i = 0; i < suggestionViews.Count; i++)
                {
                    bindingSet.Bind(suggestionViews[i])
                    .For(v => v.Suggestion)
                    .To(vm => vm.Suggestions[i]);
                }

                bindingSet.Apply();
            });
        }
コード例 #6
0
        public override void LayoutSubviews()
        {
            if (FormsCell == null)
            {
                return;
            }

            //This sets the content views frame.
            base.LayoutSubviews();

            if (CustomCell.IsMeasureOnce && Frame.Width <= _lastWidth && Frame.Height <= _lastHeight)
            {
                Layout.LayoutChildIntoBoundingRegion(FormsCell,
                                                     new Rectangle(0, 0, _lastWidth, _lastHeight));
                return;
            }

            SizeToFit();

            Layout.LayoutChildIntoBoundingRegion(FormsCell,
                                                 new Rectangle(0, 0, Frame.Width, Frame.Height));

            if (_rendererRef == null)
            {
                return;
            }

            IVisualElementRenderer renderer;

            if (_rendererRef.TryGetTarget(out renderer))
            {
                renderer.NativeView.Frame = FormsCell.Bounds.ToRectangleF();
            }

            if (_heightConstraint != null)
            {
                _heightConstraint.Active = false;
                _heightConstraint?.Dispose();
            }

            _heightConstraint          = HeightAnchor.ConstraintEqualTo(Frame.Height);
            _heightConstraint.Priority = 999f;
            _heightConstraint.Active   = true;

            _lastWidth  = Frame.Width;
            _lastHeight = Frame.Height;
        }
コード例 #7
0
ファイル: RoundedButton.cs プロジェクト: fryette/Xam.iOS.Fab
        private void ApplyDimensions()
        {
            if (Width == 0 && Height == 0)
            {
                return;
            }

            TranslatesAutoresizingMaskIntoConstraints = false;

            if (Width != 0)
            {
                WidthAnchor.ConstraintEqualTo(Width).Active = true;
            }
            if (Height != 0)
            {
                HeightAnchor.ConstraintEqualTo(Height).Active = true;
            }
        }
コード例 #8
0
 public CustomFloatingactionbutton(ActionButtonView View)
 {
     _view = View;
     SetIcon();
     Layer.CornerRadius      = (nfloat)_view.HeightRequest / 2;
     BackgroundColor         = _view.BackgroundColor.ToUIColor();
     heightConstraint        = HeightAnchor.ConstraintEqualTo((nfloat)View.HeightRequest);
     heightConstraint.Active = true;
     widthConstraint         = WidthAnchor.ConstraintEqualTo((nfloat)View.HeightRequest);
     widthConstraint.Active  = true;
     TouchDown += delegate(object sender, EventArgs e)
     {
         UIView.Animate(0.1, 0, UIViewAnimationOptions.Autoreverse,
                        () => { BackgroundColor = View.SelectedColor.ToUIColor(); },
                        () => { BackgroundColor = View.BackgroundColor.ToUIColor(); });
         View.ClickAction();
     };
     _view.PropertyChanged += _view_PropertyChanged;
 }
コード例 #9
0
        public CustomSearchField()
        {
            TranslatesAutoresizingMaskIntoConstraints = false;

            Cell       = cell = new SearchFieldCell(this);
            WantsLayer = true;

            var internalLayer = new CoreAnimation.CALayer();

            internalLayer.BorderWidth  = 1;
            internalLayer.BorderColor  = NSColor.FromRgba(red: 0.75f, green: 0.75f, blue: 0.75f, 0.45f).CGColor;
            internalLayer.Frame        = new CGRect(1, 0, DefaultWidth + 2, DefaultHeight);
            internalLayer.CornerRadius = 2;
            Layer.AddSublayer(internalLayer);

            Font = NSFont.SystemFontOfSize(SearchFontSize, NSFontWeight.Thin);

            //default size needs to be changed before change cell
            WidthAnchor.ConstraintEqualToConstant(DefaultWidth).Active   = true;
            HeightAnchor.ConstraintEqualToConstant(DefaultHeight).Active = true;
        }
コード例 #10
0
        public PinnedWatchView(PinnedWatch watch, StackFrame frame)
        {
            this.watch = watch ?? throw new ArgumentNullException(nameof(watch));
            this.frame = frame;

            controller = new ObjectValueTreeViewController();
            controller.SetStackFrame(frame);
            controller.AllowEditing   = true;
            controller.AllowExpanding = false;

            treeView = controller.GetMacControl(ObjectValueTreeViewFlags.PinnedWatchFlags);

            controller.PinnedWatch = watch;

            if (watch.Value != null)
            {
                controller.AddValue(objectValue = watch.Value);
            }

            var rect = treeView.Frame;

            if (rect.Height < 1)
            {
                treeView.Frame = new CoreGraphics.CGRect(rect.X, rect.Y, rect.Width, 19);
            }

            AddSubview(treeView);
            Frame = treeView.Frame;

            heightConstraint        = HeightAnchor.ConstraintEqualToConstant(treeView.Frame.Height);
            heightConstraint.Active = true;

            widthConstraint        = WidthAnchor.ConstraintEqualToConstant(treeView.Frame.Width);
            widthConstraint.Active = true;

            DebuggingService.ResumedEvent += OnDebuggerResumed;
            DebuggingService.PausedEvent  += OnDebuggerPaused;
            treeView.Resized += OnTreeViewResized;

            AddTrackingArea(new NSTrackingArea(
コード例 #11
0
        public PinnedWatchView(PinnedWatch watch, StackFrame frame)
        {
            HasVerticalScroller = true;
            AutohidesScrollers  = true;

            controller = new ObjectValueTreeViewController();
            controller.SetStackFrame(frame);
            controller.AllowEditing = true;

            treeView = controller.GetMacControl(headersVisible: false, compactView: true, allowPinning: true);

            controller.PinnedWatch = watch;

            if (watch.Value != null)
            {
                controller.AddValue(watch.Value);
            }

            var rect = treeView.Frame;

            if (rect.Height < 1)
            {
                treeView.Frame = new CoreGraphics.CGRect(rect.X, rect.Y, rect.Width, 19);
            }

            DocumentView = treeView;
            Frame        = treeView.Frame;

            heightConstraint        = HeightAnchor.ConstraintEqualToConstant(treeView.Frame.Height);
            heightConstraint.Active = true;

            widthConstraint        = WidthAnchor.ConstraintEqualToConstant(treeView.Frame.Width);
            widthConstraint.Active = true;

            DebuggingService.ResumedEvent += OnDebuggerResumed;
            DebuggingService.PausedEvent  += OnDebuggerPaused;
            treeView.Resized += OnTreeViewResized;
        }