Как сделать КРАСИВОЕ окно произвольной формы?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение MIT » 05.09.2008 (Пт) 17:06

Сабж.

В принципе, окна делаются так:
MyBase.Region = New Region(System.Drawing.Drawing2D.GraphicsPath)

Но это не красиво, угловато, да и регион хотя бы с закруленными углами сделать сложно. Поэтому хотелось бы наподобие CorelDraw`а (прилогаю пример) : со сглаживанием и тенями.
Как реализовать?
Вложения
Untitled-1.gif
(24.16 Кб) Скачиваний: 113
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение Williams » 05.09.2008 (Пт) 17:34

MIT писал(а):Сабж.

В принципе, окна делаются так:
MyBase.Region = New Region(System.Drawing.Drawing2D.GraphicsPath)

Но это не красиво, угловато, да и регион хотя бы с закруленными углами сделать сложно. Поэтому хотелось бы наподобие CorelDraw`а (прилогаю пример) : со сглаживанием и тенями.
Как реализовать?


Зачем так изващаться, ведь существует же штатный способ. Советую обратить внимание на свойство формы TransparencyKey - при установке свойства заданный произвольный цвет будет обращен в ничто
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение MIT » 05.09.2008 (Пт) 18:02

А с градиентами способ работает?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение Williams » 05.09.2008 (Пт) 18:07

Поставь TransparencyKey в красный (255, 0, 0) и проверишь... Если у тебя градиент в оттенках синего, то какая разница? Правильно, никакой. Прозрачным станет только красный...
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение MIT » 05.09.2008 (Пт) 18:25

С градиентами НЕ работает. А хочется шоб работало, а то уж больно мне та тень у Corel`а понравилась...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как сделать КРАСИВОЕ окно произвольной формы?

Сообщение MIT » 06.09.2008 (Сб) 9:07

Нашел способ создавать прозрачные градиенты

Код: Выделить всё
       
Me.TransparencyKey = Color.Red
        Dim myColors() As Color = New Color() {Color.FromArgb(0, 255, 0, 0), Color.FromArgb(152, 255, 0, 0), Color.FromArgb(255, 255, 0, 0)}
        Dim myPositions() As Single = {0.0F, 0.5F, 1.0F}
        Dim myBlend As ColorBlend = New ColorBlend(5)
        myBlend.Colors = myColors
        myBlend.Positions = myPositions
        Dim br As LinearGradientBrush = New LinearGradientBrush(New Rectangle(100, 100, 300, 300), Color.FromArgb(0, 255, 0, 0), Color.FromArgb(255, 0, 0, 0), 0.0!)
        br.InterpolationColors = myBlend
        e.Graphics.FillRectangle(br, 100, 100, 300, 300)

Но с формами тоже не работает. Может кто знает как правильно Blend к форме прикрутить?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 105

    TopList