Рисование субрегиона BitmapSource - PullRequest
0 голосов
/ 01 августа 2009

Я создаю редактор уровней в WPF для 2D-игры на основе плиток. Я пытаюсь выяснить, как лучше всего загрузить файл tileset Image и визуализировать каждую плитку в соответствующем месте, чтобы восстановить карту.

В настоящее время я загружаю Image как BitmapSource и извлекаю класс Canvas для элемента управления, отображающего карту. Я переопределяю метод OnRender, чтобы получить DrawingContext. Однако, DrawingContext.DrawImage не имеет соответствующей перегрузки, которая рисует только часть изображения; похоже, я должен нарисовать все изображение.

Что мне следует использовать, если я хочу нарисовать подсекции Image на Canvas? Или я должен использовать что-то кроме Canvas?

1 Ответ

0 голосов
/ 01 августа 2009

Вот как бы я это сделал:

protected override void OnRender(DrawingContext dc)
{
    BitmapImage source = new BitmapImage();
    source.BeginInit();
    source.UriSource = new Uri(@"pack://application:,,,/YourProject;component/YourImage.jpg");
    source.SourceRect = new Int32Rect(0, 0, 200, 200);
    source.EndInit();

    dc.DrawImage(source, Rect.Parse("0, 0, 200, 200"));
    base.OnRender(dc);
}

Для вас это свойство BitmapImage.SourceRect .

...