0

现在,我创建了一个 Canvas 作为我的 2D RPG 的 Map 。事实上,我创建了一个数组单元[6*6]。

        int x=6;
        int y=6 ;
        bool[,] cells = new bool[x,y];
        for (int i = 0; i < x; i++)
        {
            for (int j = 0; j < y; j++)
            {
                cells[i, j] = true;
            }
        }

接着

<Window x:Class="ASTHENIA.GameIng"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ASTHENIA" Height="650" Width="800" ResizeMode="NoResize" Closed="Window_Closed_1" WindowStartupLocation="CenterScreen">
<Grid Name="MyGrid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.05*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="0.05*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="0.05*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="0.02*" />
        <RowDefinition Height="0.3*" />
        <RowDefinition Height="*" />
        <RowDefinition Height="0.3*" />
        <RowDefinition Height="0.02*" />

    </Grid.RowDefinitions>
    <Button Grid.Column="5" Grid.Row="3"  Width="100" Height="80" Click="Button_Click_1"  >
        <Button.Background>
            <ImageBrush ImageSource="Resources/back.png"/>
        </Button.Background>
    </Button>
    <TextBlock Grid.Column="5" Grid.Row="1" Grid.RowSpan="2" />

    <Canvas Name="Map" Grid.Row ="2" Grid.Column="1" Grid.ColumnSpan="3" Grid.RowSpan="1" >

    </Canvas>
</Grid>
</Window>

如何将 Canvas 分解为 6*6。单元格的第一个左边是单元格[0,0]。

4

1 回答 1

1

你真的需要画布吗?

画布是一个原始的均匀表面,您需要一个类似矩阵的表面

因此,您宁愿使用带有小画布元素的UniformGrid 。

或者你可以编写你自己的类似矩阵的表面控制......

于 2013-06-06T14:25:29.557 回答