Как отобразить изображение в области, определенной в Picturebox? - PullRequest
0 голосов
/ 24 августа 2009

Как продолжение моего предыдущего вопроса, я получил свой регион, но провел последние два часа, пытаясь показать крошечные картинки с одним регионом; конечной целью является возможность произвольного отображения любого количества изображений, которые я выберу. пока это мой код:

    void OnPaintRadar(Object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;        
    Bitmap blip = new Bitmap(tst_Graphics.Properties.Resources.dogtag);
    Rectangle radar_rect = new Rectangle(myRadarBox.Left + 80, myRadarBox.Left + 7, myRadarBox.Width - 200, myRadarBox.Height + 200);
    using (Pen drw_pen = new Pen(Color.White, 1) )
    {
        using (GraphicsPath path = new GraphicsPath())
        {
            path.AddPie(radar_rect, 180, 180);
            path.CloseFigure();
            using (Region rdRegion = new Region(path) )
            {
                g.DrawPath(drw_pen, path);
                g.Clip = rdRegion;
                PictureBox pb = new PictureBox();
                pb.Image = (blip);
                pb.Size = blip.Size;
                g.DrawImage(blip, radar_rect);
            }
        }

    }

}// end paint method

Я также пробовал метод DrawImageUnscaled, но я либо получаю свою маленькую картинку, чтобы заполнить область пирога, либо ничего не отображается.

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Нажмите здесь , чтобы запустить пример приложения, которое демонстрирует основы того, как сделать радар (или, по крайней мере, в одну сторону) Примечание: это приложение не выполняет двойную буферизацию или прозрачность крошечного изображения.

Исходный код для проекта здесь .

1 голос
/ 24 августа 2009

Эта строка:

pb.Image = (blip);

- вот что делает крошечное изображение большим. По сути, вы извлекаете крошечное растровое изображение из ресурсов, а затем устанавливаете свойство ImageBox для этого растрового изображения (я предполагаю, что «pb» - это PictureBox в вашей форме). Попробуйте закомментировать эту строку и строку под ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...