WPF中的棋盘

Cap*_*ton 4 wpf chess

多年来我一直使用Winforms开发,现在我想切换到WPF并制作棋盘.不幸的是我不知道从哪里开始.使用WPF让我非常不确定,我再次感觉自己像个菜鸟.有人可以概述基本设计吗?我想我会从一个8x8网格开始,并使用矩形作为正方形,图像为碎片.然后?我错过了什么吗?

编辑:这只是关于用户界面; 幕后发生的事情没有问题.

Ala*_*tts 9

标准网格的替代方案是使用UniformGrid(msdn链接).

它可能更适合这种情况(在我看来),因为它总是会给你相同大小的细胞.

使用了ala:

<UniformgGrid Columns="8" Rows="8">
    <Control1/>
    <Control2/>
    <Control3/>
</UniformGrid>
Run Code Online (Sandbox Code Playgroud)

任何这些答案都会给你你想要的结果.


Sco*_*ein 6

国际象棋似乎非常适合WPF的MVVM代码模式.

模式将是国际象棋的游戏逻辑,听起来像是你有在控制之下.该视图将在WPF看比赛的,而视图模型将游戏的代表,在其中可以查看到数据绑定.

对于视图,使用UniformGrid的ItemsControl将用于游戏的2D表示.

这是一个开始(未经检查)

<ItemsControl ItemsSource="{Binding TheGame}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="8" Rows="8" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ContentControl Background="{Binding SquareColor}">
                <Path Data="{Binding PieceShape}" Fill="{Binding PieceColor}" />
            </ContentControl>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

为了使上述工作,您的ViewModel将需要一个ObservableCollection<ChessGridItem>并且ChessGridItem应该是一个DependencyObject公开的DependencyProperties SquareColor,PieceColor并且PieceShape