在我的“游戏”中,我将绘制一个小地图(即10x10字段)。每个领域将代表一堵墙或地面。根据这个问题的答案,瓷砖将是PNG图像或简单的彩色矩形。在WPF中绘制瓷砖地图的最简单方法
什么是你的最好推荐的方式来绘制这样的WPF地图?我希望它是尽可能简单,因为这个项目的GUI部分不是很重要,我只是希望它显示在窗口的中心。
想法,我有:
Canvas
+放置多个Rectangle
S作为孩子的引擎进行渲染- 位图,通过GUI
- 外部库显示?
在我的“游戏”中,我将绘制一个小地图(即10x10字段)。每个领域将代表一堵墙或地面。根据这个问题的答案,瓷砖将是PNG图像或简单的彩色矩形。在WPF中绘制瓷砖地图的最简单方法
什么是你的最好推荐的方式来绘制这样的WPF地图?我希望它是尽可能简单,因为这个项目的GUI部分不是很重要,我只是希望它显示在窗口的中心。
想法,我有:
Canvas
+放置多个Rectangle
S作为孩子的引擎进行渲染作为Windows Forms,WPF并不倾向于绘制。 WPF更加面向内容。
“绘制”某物的最佳方式是从现有的WPF元素中生成地图。例如,您可以使用Grid
或UniformGrid
或甚至Canvas
来布置您的内容。您可以以编程方式将Image
s和Rectangle
s添加到地图中,而不用担心任何绘图代码。
下面是一个例子:
UniformGrid grid = new UniformGrid();
grid.Columns = 10;
grid.Rows = 10;
grid.Width = columnWidth * 10;
grid.Height = rowHeight * 10;
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 10; y++)
{
if (fields[x, y] is SomeImage)
{
Image img = new Image();
img.Source = someImageSource;
grid.Children.Add(img);
}
else
{
Rectangle rect = new Rectangle();
rect.Fill = someColor;
grid.Children.Add(rect);
}
}
}
Canvas.SetLeft(grid, (canvas.Width - grid.Width)/2);
Canvas.SetTop(grid, (canvas.Height - grid.Height)/2);
canvas.Children.Add(grid);
你可能无法按原样使用,但你可以在缺件填写。
我最近做了一个类似于此的项目,使用Canvas
来布置TextBlock
s,Line
s和Button
s。这是高效和简单的,比我预期的要多得多。
你如何定义“最好”?易于编程,性能,内存使用,CPU ...? – 2012-03-26 16:34:42
易于编程最重要 – emesx 2012-03-26 16:36:08