Как мне скрести прозрачную панель в растровое изображение? - PullRequest
0 голосов
/ 31 августа 2010

Вопрос:

Как мне скрапить то, что прозрачная панель показывает в растровое изображение?

Справочная информация:

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

Я создал форму и добавил к ней панель. Затем я установил цвет фона панели на красный. Затем установите для свойства TransparentKey формы значение red и topmost = True.

Так что теперь у меня есть прозрачная панель. Здорово. Я могу взаимодействовать с приложением под ним. Здорово. Теперь мне просто нужно добавить размытие. Я хотел бы взять то, что отображается на панели 1, и размыть его, а затем отобразить на панели 2, которая находится поверх панели 1. Или, по крайней мере, это идея.

Важная деталь:

DrawToBitmap () просто показывает красный фон.

Это работает на XP.

1 Ответ

2 голосов
/ 31 августа 2010

Да, DrawToBitmap ().Но не на прозрачной панели, а на той, что под ней.Если эта «панель» на самом деле не ваша, вы должны использовать Graphics.CopyFromScreen ().

Не уверен, что вы собираетесь с ней делать, но рисование размытого изображения на прозрачной панели сделает его не-прозрачный и вы не можете больше взаимодействовать с нижележащим окном.Кроме того, не используйте красный, вы получите непреднамеренную прозрачность, если нижележащее окно содержит красный.Color.Fuchsia - хороший выбор, это цвет fuchsed-up.

...