Пример #1
0
        /// <summary>
        /// 画小时数字
        /// </summary>
        /// <param name="radius">半径</param>
        /// <returns></returns>
        private async Task DrawHourNumberAsync(double radius)
        {
            await _context.SaveAsync();

            //await _context.TranslateAsync(radius, radius);
            await _context.BeginPathAsync();

            await _context.SetFontAsync("18px Arial");

            await _context.SetFillStyleAsync("#000");

            await _context.SetTextAlignAsync(TextAlign.Center);

            await _context.SetTextBaselineAsync(TextBaseline.Middle);

            List <Task> tasks = new List <Task>();

            for (int i = 1; i <= 12; i++)
            {
                tasks.Add(DrawOneHourNumberAsync(i, radius));
            }
            await Task.WhenAll(tasks);

            await _context.RestoreAsync();
        }
Пример #2
0
        private static async Task RenderText(Canvas2DContext context, string text, int x)
        {
            await context.SetFillStyleAsync("#fff");

            await context.SetFontAsync("18px verdana");

            await context.SetTextBaselineAsync(TextBaseline.Middle);

            await context.FillTextAsync(text, x, 0);
        }
Пример #3
0
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            _outputCanvasContext = await _canvasReference.CreateCanvas2DAsync();

            await _outputCanvasContext.SetTextBaselineAsync(TextBaseline.Top);

            if (_outputCanvasContext != null)
            {
                if (firstRender)
                {
                    PokaPreview();
                }
            }
        }
Пример #4
0
        private async Task BuildCanvas()
        {
            if (context == null)
            {
                context = await canvasReference.CreateCanvas2DAsync();

                await context.SetTextAlignAsync(TextAlign.Center);

                await context.SetTextBaselineAsync(TextBaseline.Middle);
            }

            await context.ClearRectAsync(0, 0, 150, 150);

            if (loading)
            {
                await context.FillTextAsync("Loading...", 75, 75);

                return;
            }

            Point drawPosition;

            if (character.HairBelowBody != null)
            {
                drawPosition = CalculateDrawPosition(character.HairBelowBodyPosition, character.HairBelowBody);
                await context.DrawImageAsync(HairBelowBodyRef, drawPosition.X, drawPosition.Y);
            }

            drawPosition = CalculateDrawPosition(character.BodyPosition, character.Body);
            await context.DrawImageAsync(BodyRef, drawPosition.X, drawPosition.Y);

            if (character.Mail != null)
            {
                drawPosition = CalculateDrawPosition(character.MailPosition, character.Mail);
                await context.DrawImageAsync(MailRef, drawPosition.X, drawPosition.Y);
            }


            drawPosition = CalculateDrawPosition(character.HeadPosition, character.Head);
            await context.DrawImageAsync(HeadRef, drawPosition.X, drawPosition.Y);

            if (character.EarType != EarType.Normal)
            {
                drawPosition = CalculateDrawPosition(character.EarPosition, character.Ear);
                await context.DrawImageAsync(EarRef, drawPosition.X, drawPosition.Y);
            }
            if (character.HasFace)
            {
                drawPosition = CalculateDrawPosition(character.FacePosition, character.Face);
                await context.DrawImageAsync(FaceRef, drawPosition.X, drawPosition.Y);
            }
            if (character.Hair != null)
            {
                drawPosition = CalculateDrawPosition(character.HairPosition, character.Hair);
                await context.DrawImageAsync(HairRef, drawPosition.X, drawPosition.Y);
            }
            if (character.HairOverHead != null)
            {
                drawPosition = CalculateDrawPosition(character.HairOverHeadPosition, character.HairOverHead);
                await context.DrawImageAsync(HairOverHeadRef, drawPosition.X, drawPosition.Y);
            }
            if (character.BackHair != null)
            {
                drawPosition = CalculateDrawPosition(character.BackHairPosition, character.BackHair);
                await context.DrawImageAsync(BackHairRef, drawPosition.X, drawPosition.Y);
            }
            if (character.BackHairBelowCap != null)
            {
                drawPosition = CalculateDrawPosition(character.BackHairBelowCapPosition, character.BackHairBelowCap);
                await context.DrawImageAsync(BackHairBelowCapRef, drawPosition.X, drawPosition.Y);
            }

            if (character.Pants != null)
            {
                drawPosition = CalculateDrawPosition(character.PantsPosition, character.Pants);
                await context.DrawImageAsync(PantsRef, drawPosition.X, drawPosition.Y);
            }
            if (character.Arm != null)
            {
                drawPosition = CalculateDrawPosition(character.ArmPosition, character.Arm);
                await context.DrawImageAsync(ArmRef, drawPosition.X, drawPosition.Y);
            }
            if (character.Hand != null)
            {
                drawPosition = CalculateDrawPosition(character.HandPosition, character.Hand);
                await context.DrawImageAsync(HandRef, drawPosition.X, drawPosition.Y);
            }
            if (character.MailArm != null)
            {
                drawPosition = CalculateDrawPosition(character.MailArmPosition, character.MailArm);
                await context.DrawImageAsync(MailArmRef, drawPosition.X, drawPosition.Y);
            }
        }