[英]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.