WinForms рисуют непрозрачную строку в прозрачной форме - PullRequest
2 голосов
/ 06 ноября 2011

Я создаю приложение, в котором я должен показать полупрозрачную форму.Мне также нужно нарисовать текст в этой форме, чтобы пользователь знал какую-то информацию.Тем не менее, строки, которые я рисую, также полупрозрачны и их трудно читать.Мне было интересно, если есть способ нарисовать непрозрачную строку в полупрозрачной форме.Я использую технологии .NET 4.0, C # и WinForms.На данный момент я использую метод DrawString в графической форме, но использование Label не имело никакого эффекта, хотя.Просматривая StackOverflow, я обнаружил, что это Как мне сделать мою форму прозрачной, но что я рисую на ней нет? , но это относится к WPF, и я использую старые старые WinForms.

1 Ответ

1 голос
/ 11 ноября 2011

Это может помочь вам - это даст вам полностью прозрачную форму с непрозрачным текстом:

в InitializeComponent:

SetStyle(ControlStyles.SupportsTransparentBackColor, true);
TransparencyKey = BackColor;
ShowInTaskbar = false;
FormBorderStyle = FormBorderStyle.None;

в переопределении OnPaint:

g.DrawString(...) // Use some SolidBrush.

Однако, если вам не нужна полностью прозрачная форма (это звучит не очень хорошо, но должно работать), вы можете использовать ДВЕ формы: одна с полупрозрачным фоном, без текста. Другой (поверх предыдущего) с полностью прозрачным фоном и непрозрачным текстом. Вы можете привязать местоположение, размер и видимость одной формы к другой, чтобы синхронизировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...