Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
 public override void Render()
 {
     Data.Render(false);
     renderChildPolicy.Refresh();
 }
Esempio n. 3
0
 public void Refresh() => policy.Refresh();
Esempio n. 4
0
        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();
            }
        }