GameOfLife/MainWindow.xaml (54 lines of code) (raw):
<Window x:Class="GameOfLife.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:viewModel="clr-namespace:GameOfLife.ViewModel"
xmlns:view="clr-namespace:GameOfLife.View"
Title="MainWindow"
WindowState="Maximized"
mc:Ignorable="d">
<FrameworkElement.Resources>
<DataTemplate DataType="{x:Type viewModel:MainScreenViewModel}">
<DockPanel>
<FrameworkElement.Resources>
<Style TargetType="Button" BasedOn="{StaticResource FlatButton}">
<Setter Property="Margin" Value="5, 0"/>
<Setter Property="Width" Value="120"/>
<Setter Property="Height" Value="32"/>
</Style>
</FrameworkElement.Resources>
<DockPanel Margin="0,5" DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Right" >
<Button Content="Add Petri Dish" Command="{Binding AddPetriDishCommand}"/>
<Button Content="Remove Petri Dish" Command="{Binding RemovePetriDishCommand}"/>
<Button Content="Settings" IsEnabled="False" Command="{Binding ShowSettingsCommand}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
<Button Content="Start" Command="{Binding StartCommand}"/>
<Button Content="One step" Command="{Binding OneStepCommand}"/>
<Button Content="Stop" Command="{Binding StopCommand}"/>
<Button Content="Generate" Command="{Binding GenerateCommand}"/>
<Button Content="Clear" Command="{Binding ClearCommand}"/>
</StackPanel>
</DockPanel>
<ItemsControl ItemsSource="{Binding PetriDishesCollection}" Background="DarkGray">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Margin" Value="5"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</DockPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type viewModel:PetriDish}">
<view:PetriDishControl ViewModel="{Binding}" />
</DataTemplate>
</FrameworkElement.Resources>
<ContentControl Content="{Binding}" />
</Window>