Проблема с roundrect region

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

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

Виталий
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 01.12.2004 (Ср) 18:40

Проблема с roundrect region

Сообщение Виталий » 10.10.2008 (Пт) 18:13

Проблема такая при отрисовке скруг. прямоугольник рисуется нормально.
При попытке создать регион из этого патча, регион "отедает" справа и снизу по одному пикселю.
Два часа голову ломаю, вариантов ноль :(
Плиз, подскажите как создать регион из скруг. прямоугольника, с симметричнымы закруглениями...
'
Dim Rect as New Rectangle(0,0,100,50)
Dim Radius as integer = 9
Dim shape As New System.Drawing.Drawing2D.GraphicsPath
Radius *= 2
shape.StartFigure()
shape.AddArc(Rect.Left, Rect.Top, Radius, Radius, 180, 90)
shape.AddArc(Rect.Right - Radius, Rect.Top, Radius, Radius, -90, 90)
shape.AddArc(Rect.Right - Radius, Rect.Bottom - Radius, Radius, Radius, 0, 90)
shape.AddArc(Rect.Left, Rect.Bottom - Radius, Radius, Radius, 90, 90)
shape.CloseFigure()
'
Me.Panel1.Region = New Region(shape)
Vitus

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Проблема с roundrect region

Сообщение tyomitch » 10.10.2008 (Пт) 18:34

Это фишка Винды. Крайние пикселы отрезаются от всех регионов, не только скруглённых.
Кажется, я с ней боролся, объединяя регион с тремя его отражениями (гор, верт, 180)
Изображение

Виталий
Новичок
Новичок
 
Сообщения: 28
Зарегистрирован: 01.12.2004 (Ср) 18:40

Re: Проблема с roundrect region

Сообщение Виталий » 10.10.2008 (Пт) 18:37

Поподробней плиз... об отражениях
Vitus

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Проблема с roundrect region

Сообщение tyomitch » 10.10.2008 (Пт) 19:08

В WinAPI ExtCreateRegion принимает матрицу преобразования, которая позволяет всяко крутить, сжимать и отражать регион.
Представлена ли эта функциональность в .net, я не в курсе.
Изображение


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

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

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

    TopList