繁体   English   中英

C#-在图片框的上方和上方绘制文本

[英]C# - Draw text outside, and above, picturebox

我目前正在制作一个小游戏,玩家是一个可以移动的PictureBox。 我正在努力在播放器(PictureBox)上方添加名称标签。 我似乎无法将文本的X和Y位置设置在框外。 它只是降落在里面。 我做了一张图片,展示并描述了我想要实现的目标:

图片

这是我绘制角色名称的代码。 顺便说一句,我的角色名称存储在变量CharacterName.charName中

private void Main_Load(object sender, EventArgs e)
    {
        //Draw character name upon start
        ListToPaint.Add(new WhatToPaint { X = 10, Y = 10, Text = CharacterName.charName });
    }

    private List<WhatToPaint> ListToPaint = new List<WhatToPaint>();
    private class WhatToPaint
    {
        public int X { get; set; }
        public int Y { get; set; }
        public string Text { get; set; }
    }

    private void player_Paint(object sender, PaintEventArgs e)
    {
        //This is the "Paint" properties on my PictureBox, called Player
        e.Graphics.Clear(Color.White);
        foreach (WhatToPaint wp in ListToPaint)
        {
            e.Graphics.DrawString(wp.Text, this.Font, Brushes.Black, wp.X, wp.Y);
        }
    }

如果将Label与PictureBox放在同一容器中(不在pictureBox内),则可以使用坐标数学将其放在PictureBox上方(y)像素

例如,您可以将“标签和图片”框放入透明面板中。 然后,您可以将整个面板作为Label-PictureBox单元移动。 然后,Label和PictureBox将具有相同的坐标参考(因为它们位于同一容器中)。

要使Label文本居中(无论文本如何),请执行类似操作,例如使用文本框的宽度来查找中点。 然后将Label偏移该中点(还有更多坐标数学)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM