void IAbcVisual.Measure(AbcMeasureContext context) { if (!this.isVisible) { return; } this.isMeasurePhase = true; this.desiredMeasure = this.MeasureOverride(context); this.isMeasurePhase = false; this.isMeasureValid = true; }
internal void Measure(AbcMeasureContext context) { if (this.isMeasureValid) { return; } this.isMeasurePhase = true; AbcSize availableSize = context.availableSize; this.desiredMeasure = this.MeasureOverride(context); context.availableSize = availableSize; this.isMeasurePhase = false; this.isMeasureValid = true; }
protected override AbcSize MeasureOverride(AbcMeasureContext context) { if (this.axisLine == null) { this.axisLine = (IAbcRectangle)this.VisualTree.CreateVisual(typeof(IAbcRectangle)); this.canvas.Children.Add(this.axisLine); } this.EnsureLabelInfos(); AbcSize labelsDesiredSize = this.MeasureLabels(context); double desiredWidth = labelsDesiredSize.width; double desiredHeight = this.axisLineThickness + this.axisTickThickness + labelsDesiredSize.height; return(new AbcSize(desiredWidth, desiredHeight)); }
protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec) { MeasureSpecMode widthMode = MeasureSpec.GetMode(widthMeasureSpec); MeasureSpecMode heightMode = MeasureSpec.GetMode(heightMeasureSpec); double availableWidth = widthMode == MeasureSpecMode.Unspecified ? double.PositiveInfinity : MeasureSpec.GetSize(widthMeasureSpec); double availableHeight = heightMode == MeasureSpecMode.Unspecified ? double.PositiveInfinity : MeasureSpec.GetSize(heightMeasureSpec); AbcMeasureContext context = new AbcMeasureContext(new AbcSize(availableWidth, availableHeight)); this.controlCoordinator.abcControl.Measure(context); AbcSize desiredMeasure = this.controlCoordinator.abcControl.DesiredMeasure; int measuredWidth = widthMode == MeasureSpecMode.Exactly ? (int)availableWidth : AbcMath.Round(desiredMeasure.width); int measuredHeight = heightMode == MeasureSpecMode.Exactly ? (int)availableHeight : AbcMath.Round(desiredMeasure.height); this.SetMeasuredDimension(measuredWidth, measuredHeight); }
internal AbcRect(double width, double height) { this.x = 0; this.y = 0; this.size = new AbcSize(width, height); }
internal AbcRect(AbcSize size) { this.x = 0; this.y = 0; this.size = size; }
internal AbcRect(double x, double y, AbcSize size) { this.x = x; this.y = y; this.size = size; }
internal AbcMeasureContext(AbcSize availableSize) { this.availableSize = availableSize; }
internal AbcMeasureContext(AbcSize availableSize, AbcContextBase owner) : base(owner) { this.availableSize = availableSize; }