Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Превьюшка (bitmap) из заполненого UserControl Добавлено: 05.02.12 10:25  

Автор вопроса:  Миха
Привет.
Суть вопроса вот в чем:
Есть UserControl с чекбоксами и заполнеными текстбоксами.
Необходимо получить с него bitmap, причем сам UserControl еще не где на мониторе графически не отображен, т.е. находится в памяти. Т.е. нужно сделать что то вроде превьшки.

метод me.DrawToBitmap возращает bitmap на котором находится голый контейнер UserControl без чекбоксов и текстбоксов.

GDI+ тоже никак не может помочь, т.к. он захватывает уже часть готового экрана методом Graphics.CopyFromScreen, а у меня еще ничего на мониторе нет.

Подскажите люди добрые как быть?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Миха



Вопросов: 2
Ответов: 1
 Профиль | | #1 Добавлено: 06.02.12 20:03
Ну что же отвечу сам себе, не знаю на сколько элегантно, но может кому пригодится:

  ''' <summary>
    ''' Функция получения превьюшки с пользовательского контрола
    ''' </summary>
    ''' <param name="MyUserControl"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function GetPreViewFromUserControl(ByVal MyUserControl As System.Windows.Forms.Control) As Bitmap
        'Создаем базовый рисунок с контрола
        ;Dim bitmapMyUC As Bitmap = New System.Drawing.Bitmap(MyUserControl.Width, MyUserControl.Height)
        MyUserControl.DrawToBitmap(bitmapMyUC, New Rectangle(0, 0, bitmapMyUC.Width, bitmapMyUC.Height))
        'Ассоциируем базовый рисунок с обектом для отрисовки
        ;Dim graph As Graphics = Graphics.FromImage(bitmapMyUC)

        'Перебираем коллекцию контролов на котроле
        ;Dim oControl As Windows.Forms.Control

        For Each oControl In MyUserControl.Controls

            ;Dim Bitmap As Bitmap = New System.Drawing.Bitmap(oControl.Width, oControl.Height)
            oControl.DrawToBitmap(Bitmap, New Rectangle(0, 0, oControl.Width, oControl.Height))


            graph.DrawImage(Bitmap, New Point(oControl.Location.X, oControl.Location.Y))
            Bitmap = Nothing
        Next
        'Возращаем готовый рисунок
        Return bitmapMyUC
    End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам