[英]How to draw watermark on Listbox using C#
是否可以在ListBox上繪制水印文本或圖像,在下面的列表框中,它包含幾個文件擴展名相同的文件(文件類型,在本例中為.abc),所以我想將文件擴展名繪制為水印
任何建議或指導將不勝感激, 謝謝您的時間.. :)
該示例應完全滿足您的需求:
public Form1()
{
InitializeComponent();
// Example Item
listBox1.Items.Add("c:\\Folder1\\example1.abc");
listBox1.Items.Add("c:\\Folder1\\example2.abc");
listBox1.Items.Add("c:\\Folder1\\example3.abc");
listBox1.Items.Add("c:\\Folder1\\example4.abc");
listBox1.Items.Add("c:\\Folder1\\example5.abc");
listBox1.Items.Add("c:\\Folder1\\example6.abc");
// Without this listBox1.DrawItem won't fire
listBox1.DrawMode = DrawMode.OwnerDrawVariable;
// Subscribe event
listBox1.DrawItem += listBox1_DrawItem;
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
// Make sure listbox contains items
if (listBox1.Items.Count == 0)
return;
// In this example ext will be ".abc"
string ext = Path.GetExtension(listBox1.Items[0].ToString());
// Draw items
e.DrawBackground();
e.DrawFocusRectangle();
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, SystemBrushes.WindowText, e.Bounds.Location);
// Transparence
// 255 = Full Visible
// 0 = Invisible
Color clr = Color.FromArgb(20, Color.Red);
// Modify the position, font and Brush to your need
e.Graphics.DrawString(ext, SystemFonts.DefaultFont, new SolidBrush(clr), new PointF(200F, 200F));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.