多年来我一直使用Winforms进行开发,现在我想切换到WPF并制作一个棋盘。不幸的是,我不知道从哪里开始。使用WPF让我很不确定,我又觉得自己像个菜鸟了。有人能概述一下基本的设计吗?我想我会从一个8x8的网格开始,并使用矩形作为正方形,图像作为碎片。后来怎么样了?我是不是遗漏了什么?
编辑:这只是关于用户界面;幕后发生的事情是没有问题的。
发布于 2009-12-28 00:32:03
标准网格的另一种选择是使用UniformGrid (msdn link)。
它可能更适合这个(在我看来),因为它总是给你相同大小的单元格。
使用的ala:
<UniformgGrid Columns="8" Rows="8">
<Control1/>
<Control2/>
<Control3/>
</UniformGrid>这些答案中的任何一个都会给你你想要的结果。
发布于 2009-12-28 02:15:14
Chess似乎非常适合WPF的MVVM代码模式。
模型将是国际象棋比赛的逻辑,听起来你可以控制它。视图将显示游戏的WPF外观,ViewModel将显示游戏的表示形式,视图可以在其中绑定数据。
对于视图,使用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>要使上述方法起作用,您的ViewModel需要有一个ObservableCollection<ChessGridItem>,并且ChessGridItem应该是一个公开SquareColor、PieceColor和PieceShape的DependencyProperties的DependencyObject
发布于 2009-12-28 00:20:13
您可以在XAML或代码中使用相同的结果来创建UI。我最近开始使用WPF,我推荐使用XAML方法。一开始有点吓人,但很快就会变得熟悉起来。对我来说,这感觉像是一种精心设计的UI设计方法,而现在WinForms看起来就像是在之前出现的任何东西上给了.NET一巴掌。
您可以从拖放方法开始,但是如果您和我一样,您将很快使用XAML,并使用设计图面进行可视化检查。
我可能不会这样做,但是如果您看过任何XML或HTML,您可能会猜到这将显示什么,即使您以前从未看过任何XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="100" />
<RowDefinition Height="100" />
<RowDefinition Height="100" />
</Grid.RowDefinitions>
<Border Grid.Column="0" Grid.Row="0" Background="Black" />
<Border Grid.Column="2" Grid.Row="0" Background="Black" />
<Border Grid.Column="1" Grid.Row="1" Background="Black" />
<Border Grid.Column="3" Grid.Row="1" Background="Black" />
</Grid>https://stackoverflow.com/questions/1966258
复制相似问题