WPFはWindowsフォームと同様に図面に傾いていません。 WPFはよりコンテンツ指向です。
「描画する」最も良い方法は、既存のWPF要素からマップを生成することです。たとえば、Grid
またはUniformGrid
、さらにはCanvas
を使用してコンテンツをレイアウトすることができます。描画コードを気にすることなく、Image
とRectangle
をプログラムで追加することができます。ここで
は一例です:
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の容易さ...? –
プログラミングの容易さが最も重要 – emesx