Расширенная прозрачность в форме - PullRequest
0 голосов
/ 21 января 2011

Я ищу способ создания форм, похожих по стилю на следующие два.

Я играл с ключами прозрачности, Windows API, но не смог сделать это в Windows Forms.

http://onenetworks.us/ONEmessenger&center.jpg

В этом посте я ищу любые ссылки на статьи, объясняющие, как это можно сделать, или некоторые примеры кода.- но я приму любой вид ввода.

Я бы использовал стекло Windows Vista / 7 Areo, если бы у него не было таких ужасных проблем с альфа-смешением.

Ответы [ 3 ]

3 голосов
/ 21 января 2011

Я думаю, вы хотите настроить Непрозрачность формы.

См. это пример

0 голосов
/ 21 января 2011

Вы можете указать DWM расширить область «стекла» вашего окна.См. Рисунок 10 в этой статье

Или, используя DirectX, вы можете получить этот эффект .Не думаю, что вы можете с winforms, хотя.

0 голосов
/ 21 января 2011

См. Ссылку ниже для статьи о том, как найти способ отображения стандартных элементов управления Windows на многоуровневых окнах.Он предоставляет как исходный код MFC, так и исходный код WinForms.

Классные, полупрозрачные и фигурные диалоги со стандартными элементами управления для Windows 2000 и выше

Использование кода в WinForms / .NET

Первый шаг:

Скопируйте файлы из каталога /Src/. в ваш проект.

Второй шаг

Вам нужен файл изображения, чтобы быть фоном диалога.Вам лучше выбрать PNG или TIFF, которые поддерживают альфа-канал.

Последний шаг

Заменить базовый класс диалога с Form на ImageDlgBase.

public partial class Form2 : CoolImageDlg.ImageDlgBase {
    public Form2()
    {
        base.DlgBgImg = ImgDlgSample.Properties.Resources.DemoDlgBg2;
        //......
     } 
}

См. Пример кода в статье.

...