Я пишу приложение, которое редактирует метаданные песен. Для этого у меня есть окно, в котором были выбраны метки песни, и вы можете выбирать между старым и новым. У меня есть пользовательский элемент управления с 3 картинками для каждого тега. Одна графическая коробка для левой крышки, одна для средней и одна для правой крышки. Затем я переписал OnPaint для UserControl, чтобы нарисовать текст в элементе управления. Это работает хорошо, за исключением случаев, когда я пытаюсь использовать белый текст поверх графического блока, в котором есть изображение. Белый кажется полупрозрачным. Я приложил фотографии ниже, демонстрирующие это.
Черный текст
Изображение черного текста http://bentrengrove.com.au/blackText.PNG
Белый текст
Изображение белого текста http://bentrengrove.com.au/WhiteText.PNG
Вот код для моего метода OnPaint
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g = e.Graphics;
Brush b;
Font f;
if (_isSelected && this.Enabled) //Determines if the tag has the boxes visible, i.e is a selected tag
{
b = new SolidBrush(Color.White);
f = new System.Drawing.Font("Segoe UI", 8, FontStyle.Regular);
}
else
{
b = new SolidBrush(Color.Gray);
f = new System.Drawing.Font("Segoe UI", 8, FontStyle.Regular);
}
var textSize = g.MeasureString(_text, f); //We will resize the tag boxes based on the size of the text
StringFormat drawFormat = new StringFormat();
drawFormat.Alignment = StringAlignment.Near;
RectangleF layoutRectangle = new RectangleF(leftCap.Width, 1, textSize.Width, 16);
if (textSize.Width >= 105)
_text = String.Format("{0}...", _text.Substring(0, 15)); //There is only so much room to display text
middle.Width = (int)textSize.Width + rightCap.Width;
rightCap.Left = middle.Left + middle.Width - rightCap.Width;
g.DrawString(_text, f, b, layoutRectangle, drawFormat); //Draw the string for this control based on what has been set to text
//Clean up
g.Dispose();
b.Dispose();
f.Dispose();
}
Пожалуйста, если у кого-то есть идеи, почему я не могу нарисовать белым, помощь будет очень признательна.