【发布时间】:2017-01-13 00:54:04
【问题描述】:
我正在构建一个与已知游戏“生命游戏”非常相似的应用程序我暂时对 wither C# xaml 或 wpf 不太熟悉,但我相信这将是一个很好的学习方式一切都好起来了。因此,路上会有挣扎。
我制作了一个 10x10 的网格并用按钮归档,每个按钮都在网格中放置。为了跟踪每一代,我觉得我必须跟踪网格中的按钮位置。所以我想,如果我可以使用每个按钮网格位置 Y 轴和 X 轴。制作简单的方法来刺激每个按钮并比较两个 foor 循环内的位置并不难,每个轴一个。
我尝试通过投标恢复按钮网格位置,但我没有设法让它工作。
如果可以从网格中获得按钮网格药水,我该怎么做? 为了良好的实践,实现我的目标的更好方法是什么?
-- 隐藏代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using GOL.GameGrid;
using GOL.GameGrid.Props;
namespace GOL
{
/// <summary>
/// Interaction logic for frmGame.xaml
/// </summary>
public partial class frmGame : Window
{
string HelloWorld = "Hello World";
private string btnDataContext;
public frmGame()
{
InitializeComponent();
MyBtnProps btnContent = new MyBtnProps() { Name = "T" };
btnCollection();
}
private void btnReturn_Click(object sender, RoutedEventArgs e)
{
var newW = new MainWindow();
newW.Show();
this.Close();
}
private void btnCollection()
{
MyBtnProps btnDataContext = new MyBtnProps() { IsAlive = "T" };
//btn00.DataContext = btnDataContext;
var btnCollection = new List<Button>();
#region Grid Buttons added to collection.
btnCollection.Add(btn01);
btnCollection.Add(btn01);
btnCollection.Add(btn02);
btnCollection.Add(btn03);
btnCollection.Add(btn04);
btnCollection.Add(btn05);
btnCollection.Add(btn06);
btnCollection.Add(btn07);
btnCollection.Add(btn08);
btnCollection.Add(btn09);
btnCollection.Add(btn10);
btnCollection.Add(btn11);
btnCollection.Add(btn12);
btnCollection.Add(btn13);
btnCollection.Add(btn14);
btnCollection.Add(btn15);
btnCollection.Add(btn16);
btnCollection.Add(btn17);
btnCollection.Add(btn18);
btnCollection.Add(btn19);
btnCollection.Add(btn20);
btnCollection.Add(btn21);
btnCollection.Add(btn22);
btnCollection.Add(btn23);
btnCollection.Add(btn24);
btnCollection.Add(btn25);
btnCollection.Add(btn26);
btnCollection.Add(btn27);
btnCollection.Add(btn28);
btnCollection.Add(btn29);
btnCollection.Add(btn30);
btnCollection.Add(btn31);
btnCollection.Add(btn32);
btnCollection.Add(btn33);
btnCollection.Add(btn34);
btnCollection.Add(btn35);
btnCollection.Add(btn36);
btnCollection.Add(btn37);
btnCollection.Add(btn38);
btnCollection.Add(btn39);
btnCollection.Add(btn40);
btnCollection.Add(btn41);
btnCollection.Add(btn42);
btnCollection.Add(btn43);
btnCollection.Add(btn44);
btnCollection.Add(btn45);
btnCollection.Add(btn46);
btnCollection.Add(btn47);
btnCollection.Add(btn48);
btnCollection.Add(btn49);
btnCollection.Add(btn50);
btnCollection.Add(btn51);
btnCollection.Add(btn52);
btnCollection.Add(btn53);
btnCollection.Add(btn54);
btnCollection.Add(btn55);
btnCollection.Add(btn56);
btnCollection.Add(btn57);
btnCollection.Add(btn58);
btnCollection.Add(btn59);
btnCollection.Add(btn60);
btnCollection.Add(btn61);
btnCollection.Add(btn62);
btnCollection.Add(btn63);
btnCollection.Add(btn64);
btnCollection.Add(btn65);
btnCollection.Add(btn66);
btnCollection.Add(btn67);
btnCollection.Add(btn68);
btnCollection.Add(btn69);
btnCollection.Add(btn70);
btnCollection.Add(btn71);
btnCollection.Add(btn72);
btnCollection.Add(btn73);
btnCollection.Add(btn74);
btnCollection.Add(btn75);
btnCollection.Add(btn76);
btnCollection.Add(btn77);
btnCollection.Add(btn78);
btnCollection.Add(btn79);
btnCollection.Add(btn80);
btnCollection.Add(btn81);
btnCollection.Add(btn82);
btnCollection.Add(btn83);
btnCollection.Add(btn84);
btnCollection.Add(btn85);
btnCollection.Add(btn86);
btnCollection.Add(btn87);
btnCollection.Add(btn88);
btnCollection.Add(btn89);
btnCollection.Add(btn90);
btnCollection.Add(btn91);
btnCollection.Add(btn92);
btnCollection.Add(btn93);
btnCollection.Add(btn94);
btnCollection.Add(btn95);
btnCollection.Add(btn96);
btnCollection.Add(btn97);
btnCollection.Add(btn98);
btnCollection.Add(btn99);
#endregion Buttons added to collection.
foreach (var item in btnCollection)
{
item.DataContext = btnDataContext;
btn01.Background = new SolidColorBrush(Color.FromArgb(100, 102, 255, 179));
btn00.Background = Brushes.Cornsilk;
if (btn00.Background == Brushes.Cornsilk)
{
btn01.Background = Brushes.Azure;
}
else
{
btn01.Background = new SolidColorBrush(Color.FromArgb(100, 102, 120, 255));
}
}
}
#region LeftBtnClickEvents
private void btn00_Click(object sender, RoutedEventArgs e)
{
btn00.Background = Brushes.Green;
}
private void btn01_Click(object sender, RoutedEventArgs e)
{
btn01.Background = Brushes.Green;
}
private void btn02_Click(object sender, RoutedEventArgs e)
{
btn02.Background = Brushes.Green;
}
private void btn03_Click(object sender, RoutedEventArgs e)
{
btn03.Background = Brushes.Green;
}
private void btn04_Click(object sender, RoutedEventArgs e)
{
btn04.Background = Brushes.Green;
}
private void btn05_Click(object sender, RoutedEventArgs e)
{
btn05.Background = Brushes.Green;
}
private void btn06_Click(object sender, RoutedEventArgs e)
{
btn60.Background = Brushes.Green;
}
private void btn07_Click(object sender, RoutedEventArgs e)
{
btn07.Background = Brushes.Green;
}
private void btn08_Click(object sender, RoutedEventArgs e)
{
btn08.Background = Brushes.Green;
}
private void btn09_Click(object sender, RoutedEventArgs e)
{
btn09.Background = Brushes.Green;
}
#endregion LeftBtnClickEvents
#region RightBtnClickEvent
private void btn00_RightClick(object sender, MouseButtonEventArgs e)
{
btn00.Background = Brushes.Red;
}
private void btn01_RightClick(object sender, MouseButtonEventArgs e)
{
btn01.Background = Brushes.Red;
}
private void btn02_RightClick(object sender, MouseButtonEventArgs e)
{
btn02.Background = Brushes.Red;
}
private void btn03_RightClick(object sender, MouseButtonEventArgs e)
{
btn03.Background = Brushes.Red;
}
private void btn04_RightClick(object sender, MouseButtonEventArgs e)
{
btn04.Background = Brushes.Red;
}
private void btn05_RightClick(object sender, MouseButtonEventArgs e)
{
btn05.Background = Brushes.Red;
}
private void btn06_RightClick(object sender, MouseButtonEventArgs e)
{
btn06.Background = Brushes.Red;
}
private void btn07_RightClick(object sender, MouseButtonEventArgs e)
{
btn07.Background = Brushes.Red;
}
private void btn08_RightClick(object sender, MouseButtonEventArgs e)
{
btn08.Background = Brushes.Red;
}
private void btn09_RightClick(object sender, MouseButtonEventArgs e)
{
btn09.Background = Brushes.Red;
}
#endregion RightBtnClickEvent
}
}
-- xml代码。
<Window x:Class="GOL.frmGame"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GOL"
mc:Ignorable="d"
Title="frmGame" Height="326.4" Width="388.2" Background="#f2f2f2">
<Grid x:Name="WindowGrid" Height="Auto" Width="Auto">
<Grid x:Name="btnNavbar" HorizontalAlignment="Left" Height="38" Margin="40,241,0,0" VerticalAlignment="Top" Width="300">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button x:Name="btnNewGen" Content="New Generation" Width="Auto" Height="Auto" Grid.Column="0" Grid.Row="0"/>
<Button x:Name="btnLoadGen" Content="Load Generation" Width="Auto" Height="Auto" Grid.Column="0" Grid.Row="1"/>
<Button x:Name="btnPlayGen" Content="PLAY" Width="Auto" Height="Auto" Grid.Column="1" Grid.Row="0"/>
<Button x:Name="button1" Content="Magic" Width="Auto" Height="Auto" Grid.Column="1" Grid.Row="2"/>
<Button x:Name="btnSave" Content="Save" Width="Auto" Height="Auto" Grid.Column="3" Grid.Row="0"/>
<Button x:Name="btnReturn" Content="Menu" Width="Auto" Height="Auto" Grid.Column="3" Grid.Row="1"/>
</Grid>
<Grid x:Name="GameBoard" HorizontalAlignment="Left" Height="200" Margin="80,20,0,0" VerticalAlignment="Top" Width="200" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Button x:Name="btn00" Content="" Grid.Column="0" Grid.Row="0" Height="Auto" Width="Auto" Click="btn00_Click" MouseRightButtonUp="btn00_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn01" Content="" Grid.Column="0" Grid.Row="1" Height="Auto" Width="Auto" Click="btn01_Click" MouseRightButtonUp="btn01_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn02" Content="" Grid.Column="0" Grid.Row="2" Height="Auto" Width="Auto" Click="btn02_Click" MouseRightButtonUp="btn02_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn03" Content="" Grid.Column="0" Grid.Row="3" Height="Auto" Width="Auto" Click="btn03_Click" MouseRightButtonUp="btn03_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn04" Content="" Grid.Column="0" Grid.Row="4" Height="Auto" Width="Auto" Click="btn04_Click" MouseRightButtonUp="btn04_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn05" Content="" Grid.Column="0" Grid.Row="5" Height="Auto" Width="Auto" Click="btn05_Click" MouseRightButtonUp="btn05_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn06" Content="" Grid.Column="0" Grid.Row="6" Height="Auto" Width="Auto" Click="btn06_Click" MouseRightButtonUp="btn06_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn07" Content="" Grid.Column="0" Grid.Row="7" Height="Auto" Width="Auto" Click="btn07_Click" MouseRightButtonUp="btn07_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn08" Content="" Grid.Column="0" Grid.Row="8" Height="Auto" Width="Auto" Click="btn08_Click" MouseRightButtonUp="btn08_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn09" Content="" Grid.Column="0" Grid.Row="9" Height="Auto" Width="Auto" Click="btn09_Click" MouseRightButtonUp="btn09_RightClick" DataContext="{Binding IsAlive}"/>
<Button x:Name="btn10" Content="" Grid.Column="1" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn11" Content="" Grid.Column="1" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn12" Content="" Grid.Column="1" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn13" Content="" Grid.Column="1" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn14" Content="" Grid.Column="1" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn15" Content="" Grid.Column="1" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn16" Content="" Grid.Column="1" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn17" Content="" Grid.Column="1" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn18" Content="" Grid.Column="1" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn19" Content="" Grid.Column="1" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn20" Content="" Grid.Column="2" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn21" Content="" Grid.Column="2" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn22" Content="" Grid.Column="2" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn23" Content="" Grid.Column="2" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn24" Content="" Grid.Column="2" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn25" Content="" Grid.Column="2" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn26" Content="" Grid.Column="2" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn27" Content="" Grid.Column="2" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn28" Content="" Grid.Column="2" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn29" Content="" Grid.Column="2" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn30" Content="" Grid.Column="3" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn31" Content="" Grid.Column="3" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn32" Content="" Grid.Column="3" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn33" Content="" Grid.Column="3" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn34" Content="" Grid.Column="3" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn35" Content="" Grid.Column="3" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn36" Content="" Grid.Column="3" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn37" Content="" Grid.Column="3" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn38" Content="" Grid.Column="3" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn39" Content="" Grid.Column="3" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn40" Content="" Grid.Column="4" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn41" Content="" Grid.Column="4" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn42" Content="" Grid.Column="4" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn43" Content="" Grid.Column="4" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn44" Content="" Grid.Column="4" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn45" Content="" Grid.Column="4" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn46" Content="" Grid.Column="4" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn47" Content="" Grid.Column="4" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn48" Content="" Grid.Column="4" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn49" Content="" Grid.Column="4" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn50" Content="" Grid.Column="5" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn51" Content="" Grid.Column="5" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn52" Content="" Grid.Column="5" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn53" Content="" Grid.Column="5" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn54" Content="" Grid.Column="5" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn55" Content="" Grid.Column="5" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn56" Content="" Grid.Column="5" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn57" Content="" Grid.Column="5" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn58" Content="" Grid.Column="5" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn59" Content="" Grid.Column="5" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn60" Content="" Grid.Column="6" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn61" Content="" Grid.Column="6" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn62" Content="" Grid.Column="6" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn63" Content="" Grid.Column="6" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn64" Content="" Grid.Column="6" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn65" Content="" Grid.Column="6" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn66" Content="" Grid.Column="6" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn67" Content="" Grid.Column="6" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn68" Content="" Grid.Column="6" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn69" Content="" Grid.Column="6" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn70" Content="" Grid.Column="7" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn71" Content="" Grid.Column="7" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn72" Content="" Grid.Column="7" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn73" Content="" Grid.Column="7" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn74" Content="" Grid.Column="7" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn75" Content="" Grid.Column="7" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn76" Content="" Grid.Column="7" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn77" Content="" Grid.Column="7" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn78" Content="" Grid.Column="7" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn79" Content="" Grid.Column="7" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn80" Content="" Grid.Column="8" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn81" Content="" Grid.Column="8" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn82" Content="" Grid.Column="8" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn83" Content="" Grid.Column="8" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn84" Content="" Grid.Column="8" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn85" Content="" Grid.Column="8" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn86" Content="" Grid.Column="8" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn87" Content="" Grid.Column="8" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn88" Content="" Grid.Column="8" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn89" Content="" Grid.Column="8" Grid.Row="9" Height="Auto" Width="Auto"/>
<Button x:Name="btn90" Content="" Grid.Column="9" Grid.Row="0" Height="Auto" Width="Auto"/>
<Button x:Name="btn91" Content="" Grid.Column="9" Grid.Row="1" Height="Auto" Width="Auto"/>
<Button x:Name="btn92" Content="" Grid.Column="9" Grid.Row="2" Height="Auto" Width="Auto"/>
<Button x:Name="btn93" Content="" Grid.Column="9" Grid.Row="3" Height="Auto" Width="Auto"/>
<Button x:Name="btn94" Content="" Grid.Column="9" Grid.Row="4" Height="Auto" Width="Auto"/>
<Button x:Name="btn95" Content="" Grid.Column="9" Grid.Row="5" Height="Auto" Width="Auto"/>
<Button x:Name="btn96" Content="" Grid.Column="9" Grid.Row="6" Height="Auto" Width="Auto"/>
<Button x:Name="btn97" Content="" Grid.Column="9" Grid.Row="7" Height="Auto" Width="Auto"/>
<Button x:Name="btn98" Content="" Grid.Column="9" Grid.Row="8" Height="Auto" Width="Auto"/>
<Button x:Name="btn99" Content="" Grid.Column="9" Grid.Row="9" Height="Auto" Width="Auto"/>
</Grid>
</Grid>
【问题讨论】:
标签: c# wpf visual-studio xaml