2016-11-13 4 views
0

Я хочу создать виджет на рабочем столе без границ с полупрозрачным фоном в WF. Как это:C# WF Полупрозрачная форма

enter image description here

Но не повезло на данный момент. Все я могу достичь полна прозрачность фона с

this.BackColor = Color.Black; 
this.TransparencyKey = this.BackColor; 

Или всю форму с

this.Opacity = .4; 

Некоторое время я также провести комбинированную TransparencyKey с BackgroundImage, но результат был просто сплошной черный фон.

Полностью отчаянный Я создал две формы, полностью прозрачные с текстом, а затем с непрозрачностью, но я не мог удержать первое окно выше во время движения, поэтому текст был затемнен.

Есть ли возможность сделать это в WF или мне нужно искать библиотеку окон QT или antoher.

+0

Вы можете использовать слоистую Windows. Например, посмотрите на [Прозрачное фоновое изображение Windows Form] (http://stackoverflow.com/a/33531201/3110834) –

+0

Обычно вам нужен сэндвич из двух окон. Нижний, используя Opacity и верхний, используя TransparencyKey. Но в целом неплохая идея отображать текст на непредсказуемом фоне. Стандартные эффекты сглаживания больше не работают должным образом и больше не смешивают форму буквы в фоновом режиме. Они становятся довольно заметными, и текст выглядит уродливым. Только правильный способ сделать это - создать скриншот с Graphics.CopyFromScreen(), изменить это растровое изображение кистью, которая имеет альфа <255, а затем нарисует текст поверх нее. Прекрасно работает на заставку. –

+0

Hans i made sandwich, и шрифт выглядит нормально, но когда фон прозрачен, вы можете щелкнуть по окну и выбрать базовый, который в моем случае приносит фоновый слой вверх, над тусклым текстом. – Sajgoniarz

ответ

0

После нескольких дней исследований я не нашел решения, работающего в Windows 10. Похоже, что нет никакого метода, который будет работать на нем. Поэтому я закончил создание этого проекта в WPF, где его можно легко сделать.

Смежные вопросы