我正在WPF中为2D基于图块的游戏创建一个关卡编辑器。我正在尝试找出加载tileset Image
文件的最佳方法,并将每个图块渲染到适当的位置以重建地图。
目前,我正在将Image
加载为BitmapSource
,而我是从显示地图的控件的Canvas
类派生的。我正在覆盖OnRender
方法,因此我可以获得DrawingContext
。但是,DrawingContext.DrawImage
似乎没有适当的重载,只能绘制图像的子图形;看起来我必须绘制整个图像。
如果我想将Image
的子视图绘制到Canvas
上,我应该使用什么?或者我应该使用Canvas
以外的其他内容吗?
答案 0 :(得分:0)
我将如何做到这一点:
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。