如何创建和使用(颜色)框C#WPF的矩阵

我必须使用WPF App进行某种类型的游戏,其中包含一些颜色框矩阵(例如10×10)。 点击一些它必须消除自己和周围的盒子相同的颜色,如果有超过3,并在消除后这些框授予一些随机颜色。

我在WPF应用程序方面相当新,但我对C#编程有一些了解,我无法弄清楚应该从哪里开始。 对我来说最困难的部分是“产生”这个盒子并像矩阵一样使用它。

到目前为止,我发现了一些我认为会对我有帮助的项目 ,但并非如此。

有人可以从我可以开始的地方导航,这是最相关的方式。

谢谢。

ItemsControl + UniformGrid作为Panel是显示矩阵的不​​错选择

视图

             

代码隐藏

 public partial class MainWindow : Window { List _board; public MainWindow() { InitializeComponent(); int rows = 10; int columns = 10; _board = new List(); for(int r = 0; r 

您可以创建和使用更复杂的类型而不是Point并改进ItemTemplate以继续开发。 当前的ItemTemplate就是一个矩形

我使用代码隐藏进行演示,但在wpf MVVM中采用首选方法


编辑扩展示例

在大多数情况下,您不必直接使用UI元素

为了支持不同的颜色,我将创建一个自定义类

 public class MatrixElement { private string _color; public MatrixElement(int x, int y) { X = x; Y = y; } public int X { get; private set; } public int Y { get; private set; } public string Color { get { return _color; } set { _color = value; if (ColorChanged != null) ColorChanged(this, EventArgs.Empty); } } public event EventHandler ColorChanged; } 

窗口代码已相应更改

 List _board; public MainWindow() { InitializeComponent(); int rows = 10; int columns = 10; _board = new List(); for (int r = 0; r < rows; r++) for (int c = 0; c < columns; c++) _board.Add(new MatrixElement(r, c){Color = "Green"}); Board.ItemsSource = _board; } private void CellClick(object sender, MouseButtonEventArgs e) { var border = (Border)sender; // each point has unique {X;Y} coordinates var point = (MatrixElement)border.Tag; // changing color in item view model // view is notified by binding point.Color = "#00BFFF"; } 

ItemTemplate被修改了一下