Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отображением рисунка 
V
    Опции темы
XavierElf
  Дата 28.3.2007, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 24.1.2007
Где: г. Тверь

Репутация: 1
Всего: 1



Помогите кто-нибудь решить проблему. Заключается в следующем:
Создаю объект Bitmap. Загружаю в него рисунок из ресурсов. Размер рисунка 14х14(px). Рисую его на контроле так: 
Код

...
Point location = new Point(rectBounds.Left, rectBounds.Top);
g.DrawImage(myImage, location);
...

У меня выводит рисунок больше, чем он есть на самом деле, то есть примерно 18х18(px).
Пробовал так:
Код

...
Point location = new Point(rectBounds.Left, rectBounds.Top);
g.DrawImageUnscaled(myImage, location);
...

Всё равно эффект тот же.
Подскажите, в чём может крыться причина такого поведения рисунка?

--------------------
Даешь открытые исходники!
PM MAIL ICQ   Вверх
Retro
Дата 29.3.2007, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

Репутация: 3
Всего: 117



Цитата(XavierElf @  28.3.2007,  17:50 Найти цитируемый пост)
Подскажите, в чём может крыться причина такого поведения рисунка?

Что-то с трудом представляю как Bitmap может увеличится с 14-ти до 18-ти пикселей, его должно заплющить неподетски. Разве что рамка(бордер) по два пикселя вокруг.
А какой контрол?
PM MAIL   Вверх
XavierElf
Дата 29.3.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 24.1.2007
Где: г. Тверь

Репутация: 1
Всего: 1



Контрол я создаю свой - делаю скроллбар с нуля. А проблема такая возникла с кнопками скролбара. Самое интересное, что бэкгранунд отображается нормально, хотя я его рисую тоже с помощью рисунков, только вывожу через кисть текстур и методом FillRectangle.
--------------------
Даешь открытые исходники!
PM MAIL ICQ   Вверх
XavierElf
Дата 29.3.2007, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 24.1.2007
Где: г. Тверь

Репутация: 1
Всего: 1



Всё, проблему решил! Как оказалось, шарп по умолчанию считает, что размеры рисунка задаются в милиметрах, отсюда такое несоответствие. Чтобы исправить это сделал так:

Код

void _DrawImage(Graphics g, Bitmap image, RectangleF rect)
{
    Point location = new Point((int)rect.X, (int)rect.Y);
    Size size = new Size((int)rect.Width, (int)rect.Height);

    g.DrawImage(image, new Rectangle(location, size), 0, 0,
                  image.Width, image.Height, GraphicsUnit.Pixel);
}

--------------------
Даешь открытые исходники!
PM MAIL ICQ   Вверх
mr.DUDA
Дата 30.3.2007, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Можно было у графикса поставить GraphicsUnit в Pixel.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.