Exemplo n.º 1
0
        public override void LayoutOutline(Node node, Context context)
        {
            LabelNode label = node as LabelNode;

            Cairo.Engine engine = node.Canvas.Engine as Cairo.Engine;

            if (label.ClipInputToTextExtents)
            {
                var options = new TextOptions();
                options.Color    = label.Color.MultiplyAlpha(node.Opacity);
                options.MaxWidth = label.Width;

                var size = GetExtents(label.Text, options, engine);

                double x = label.Width - size.Width;
                x = (int)(x * label.XAlign);

                double y = label.Height - size.Height;
                y = (int)(y * label.YAlign);

                context.Rectangle(x, y, size.Width, size.Height);
            }
            else
            {
                context.Rectangle(0, 0, label.Width, label.Height);
            }
        }
Exemplo n.º 2
0
        public override void Render(Node node, Context context)
        {
            LabelNode label = node as LabelNode;

            Cairo.Engine engine = node.Canvas.Engine as Cairo.Engine;

            var options = new TextOptions();

            options.Color    = label.Color.MultiplyAlpha(node.Opacity);
            options.MaxWidth = label.Width;

            var size = GetExtents(label.Text, options, engine);

            double x = label.Width - size.Width;

            x = (int)(x * label.XAlign);

            double y = label.Height - size.Height;

            y = (int)(y * label.YAlign);

            engine.RenderText(context, label.Text, options, new Point(x, y));
        }