在我的「遊戲」中,我將繪製一個小地圖(即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