protected void Render(bool firstRender) { Area.X = Zone.X; Area.Y = Zone.Y; Area.Width = Zone.Width - YAxisSpace; Area.Height = Zone.Height - XAxisSpace; if (Theme.Axis.Y == Position.Left) { Area.X += YAxisSpace; } if (Data.XStrip.SetZone(Theme.Strip.Text.X, Theme.Strip.Text.X.Margin, Area)) { Area.Y += Data.XStrip.Zone.Height; Area.Height -= Data.XStrip.Zone.Height; } if (Data.YStrip.SetZone(Theme.Strip.Text.Y, Theme.Strip.Text.Y.Margin, Area)) { Area.Width -= Data.YStrip.Zone.Width; } if (Data.yAxis.Show) { if (Data.yAxis.AxisLabelSize > 0.0 || Data.yAxis.Titles.Any()) { var width = Theme.Axis.Title.Y.Margin.Left + Data.yAxis.AxisLabelSize + Theme.Axis.Title.Y.Margin.Right; if (Theme.Axis.Y == Position.Left) { Area.X += width; Data.XStrip.Zone.X += YAxisSpace; } Area.Width -= width; } } if (!firstRender) { areaPolicy.Refresh(); axisXPolicy.Refresh(); axisYPolicy.Refresh(); } }
public override void Render() { Data.Render(false); renderChildPolicy.Refresh(); }
public void Refresh() => policy.Refresh();
protected void Render(bool firstRender) { Area.X = X; Area.Y = Y; Area.Width = Width; Area.Height = Height; if (!string.IsNullOrEmpty(Data.Strip.x)) { var width = Data.Strip.x.Width(Data.Data.Theme.Strip.Text.X.Size); var height = Data.Strip.x.Height(Data.Data.Theme.Strip.Text.X.Size); //xStrip.X = X + Data.Data.Theme.Strip.Text.X.Margin.Left; xStrip.Y = Y + Data.Data.Theme.Strip.Text.X.Margin.Top + height; xStrip.Width = Data.Data.Theme.Strip.Text.X.Margin.Left + width + Data.Data.Theme.Strip.Text.X.Margin.Right; xStrip.Height = Data.Data.Theme.Strip.Text.X.Margin.Top + height + Data.Data.Theme.Strip.Text.X.Margin.Bottom; Area.Y += xStrip.Height; Area.Height -= xStrip.Height; } if (!string.IsNullOrEmpty(Data.Strip.y)) { var width = Data.Strip.y.Height(Data.Data.Theme.Strip.Text.Y.Size); var height = Data.Strip.y.Width(Data.Data.Theme.Strip.Text.Y.Size); yStrip.X = Area.X + Area.Width - Data.Data.Theme.Strip.Text.X.Margin.Right - width; yStrip.Y = Area.Y + Data.Data.Theme.Strip.Text.Y.Margin.Top; yStrip.Width = Data.Data.Theme.Strip.Text.Y.Margin.Left + width + Data.Data.Theme.Strip.Text.Y.Margin.Right; yStrip.Height = Data.Data.Theme.Strip.Text.Y.Margin.Top + height + Data.Data.Theme.Strip.Text.Y.Margin.Bottom; Area.Width -= yStrip.Width; } if (Data.Axis.y) { var axisWidth = Data.Data.Axis.width; if (Data.Data.Theme.Axis.Y == Left) { if (Data.YLab.width > 0.0 || Data.Y.Titles.Any()) { yAxisTitle.X = Area.X + Data.Data.Theme.Axis.Title.Y.Margin.Left + Data.YLab.width; yAxisTitle.Y = Area.Y + Data.Data.Theme.Axis.Title.Y.Margin.Bottom; yAxisTitle.Width = Data.Data.Theme.Axis.Title.Y.Margin.Left + Data.YLab.width + Data.Data.Theme.Axis.Title.Y.Margin.Right; yAxisTitle.Height = Area.Height; Area.X += yAxisTitle.Width; Area.Width -= yAxisTitle.Width; } yAxisText.X = Area.X + Data.Data.Theme.Axis.Text.Y.Margin.Left + axisWidth; yAxisText.Y = Area.Y; yAxisText.Width = Data.Data.Theme.Axis.Text.Y.Margin.Left + axisWidth + Data.Data.Theme.Axis.Text.Y.Margin.Right; Area.X += yAxisText.Width; Area.Width -= yAxisText.Width; } else if (Data.Data.Theme.Axis.Y == Right) { if (Data.YLab.width > 0.0 || Data.Y.Titles.Any()) { yAxisTitle.X = Area.X + Area.Width - Data.YLab.width - Data.Data.Theme.Axis.Title.Y.Margin.Right; yAxisTitle.Y = Area.Y + Data.Data.Theme.Axis.Title.Y.Margin.Bottom; yAxisTitle.Width = Data.Data.Theme.Axis.Title.Y.Margin.Left + Data.YLab.width + Data.Data.Theme.Axis.Title.Y.Margin.Right; yAxisTitle.Height = Area.Height; Area.Width -= yAxisTitle.Width; } yAxisText.X = Area.X + Area.Width - axisWidth; yAxisText.Y = Area.Y; yAxisText.Width = Data.Data.Theme.Axis.Text.Y.Margin.Left + axisWidth + Data.Data.Theme.Axis.Text.Y.Margin.Right; Area.Width -= yAxisText.Width; } } if (Data.Axis.x) { var xTitlesHeight = Data.XLab.height; if (Data.X.Titles.Any()) { xTitlesHeight = Max(xTitlesHeight, Data.Data.Theme.Axis.Title.X.Size.Height()); } if (xTitlesHeight > 0.0) { xAxisTitle.X = Area.X + Area.Width - Data.Data.Theme.Axis.Title.X.Margin.Right; xAxisTitle.Y = Area.Y + Area.Height - Data.Data.Theme.Axis.Title.X.Margin.Bottom; xAxisTitle.Width = Data.Data.Theme.Axis.Title.X.Margin.Left + Area.Width + Data.Data.Theme.Axis.Title.X.Margin.Right; xAxisTitle.Height = Data.Data.Theme.Axis.Title.X.Margin.Top + xTitlesHeight + Data.Data.Theme.Axis.Title.X.Margin.Bottom; Area.Height -= xAxisTitle.Height; } var axisHeight = Data.Data.Axis.height; xAxisText.X = Area.X; xAxisText.Y = Area.Y + Area.Height - Data.Data.Theme.Axis.Text.X.Margin.Bottom; xAxisText.Width = Area.Width; xAxisText.Height = Data.Data.Theme.Axis.Text.X.Margin.Top + axisHeight + Data.Data.Theme.Axis.Text.X.Margin.Bottom; Area.Height -= xAxisText.Height; } if (xStrip.Width > 0) { xStrip.X = Area.X + Data.Data.Theme.Strip.Text.X.Margin.Left; } if (yAxisText.Width > 0) { yAxisText.Height = Area.Height; } if (!firstRender) { areaPolicy.Refresh(); } }