<Window x:Class="AvalonLife.ALMainWin" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="AvalonLife 1.0" Height="600" Width="600" Name="ALMainWindow" Background="#FFFFFFFF" Loaded="ALMainWin_OnLoaded" > <Window.Resources> <Style x:Key="RunSpeedSliderStyle" TargetType="{x:Type Slider}"> <Setter Property="Width" Value="120" /> <Setter Property="Value" Value="{Binding Path=TimerInterval, Mode=TwoWay}" /> <Setter Property="Orientation" Value="Horizontal" /> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="IsSnapToTickEnabled" Value="True" /> <Setter Property="Minimum" Value="100" /> <Setter Property="Maximum" Value="1000" /> <Setter Property="TickPlacement" Value="BottomRight" /> <Setter Property="TickFrequency" Value="100" /> <Setter Property="IsDirectionReversed" Value="True" /> <Setter Property="IsMoveToPointEnabled" Value="True" /> </Style> <Style x:Key="GenCountStyle" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Text" Value="{Binding Path=Generation}" /> </Style> <Style x:Key="BirthCountStyle" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Text" Value="{Binding Path=CellBirths}" /> </Style> <Style x:Key="DeathCountStyle" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Text" Value="{Binding Path=CellDeaths}" /> </Style> <Style x:Key="PopulationCountStyle" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Text" Value="{Binding Path=Population}" /> </Style> <Style x:Key="PeakPopulationCountStyle" TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Blue" /> <Setter Property="Text" Value="{Binding Path=PeakPopulation}" /> </Style> </Window.Resources> <Grid> <DockPanel> <DockPanel DockPanel.Dock="Top" LastChildFill="False" Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}"> <Menu Margin="0,5,5,2" DockPanel.Dock="Left" Width="Auto" HorizontalAlignment="Left" Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}" > <MenuItem Header="Game"> <MenuItem Name="MenuGameNew" Header="New" Click="Menu_OnGameNew" /> <MenuItem Name="MenuGameReset" Header="Reset" Click="Menu_OnGameReset" /> <MenuItem Name="MenuGameSave" Header="Save..." Click="Menu_OnGameSave" /> <MenuItem Name="MenuGameSaveAs" Header="Save as..." Click="Menu_OnGameSaveAs" /> <MenuItem Name="MenuGameLoad" Header="Load..." Click="Menu_OnGameLoad" /> <Separator /> <MenuItem Header="Exit" Click="Menu_OnGameExit" /> </MenuItem> <MenuItem Header="Settings"> <MenuItem Name="MenuSettingsGridLines" Header="Show Grid" Click="Menu_OnSettingsGridLines" /> <MenuItem Name="MenuSettingsReticle" Header="Show Reticle" Click="Menu_OnSettingsReticle" /> <MenuItem Name="MenuSettingsHaltStable" Header="Halt Stable Model" Click="Menu_OnSettingsHaltStable" /> <Separator /> <MenuItem Name="MenuSettingsGridBkgColor" Header="Grid Background..." Click="Menu_OnSettingsGridBackground" /> <MenuItem Name="MenuSettingsReticleColor" Header="Reticle Color..." Click="Menu_OnSettingsReticleColor" /> <MenuItem Name="MenuSettingsCellBrush" Header="Cell Color..." Click="Menu_OnSettingsCellBrush" /> <Separator /> <MenuItem Header="Grid Type"> <MenuItem Name="MenuSettingsGridTorus" Header="Torus" Click="Menu_OnSettingsGridType" /> <MenuItem Name="MenuSettingsGridXCyl" Header="X Cylinder" Click="Menu_OnSettingsGridType" /> <MenuItem Name="MenuSettingsGridYCyl" Header="Y Cylinder" Click="Menu_OnSettingsGridType" /> <MenuItem Name="MenuSettingsGridFinite" Header="Finite" Click="Menu_OnSettingsGridType" /> </MenuItem> <MenuItem Header="Grid Size"> <MenuItem Name="MenuSettingsGrid40x40" Header="40 x 40" Click="Menu_OnSettingsGridSize" /> <MenuItem Name="MenuSettingsGrid50x50" Header="50 x 50" Click="Menu_OnSettingsGridSize" /> <MenuItem Name="MenuSettingsGrid60x60" Header="60 x 60" Click="Menu_OnSettingsGridSize" /> <MenuItem Name="MenuSettingsGrid70x70" Header="70 x 70" Click="Menu_OnSettingsGridSize" /> <Separator /> <MenuItem Name="MenuSettingsGridCustom" Header="Custom..." Click="Menu_OnSettingsGridSizeCustom" /> <Separator /> <MenuItem Name="MenuSettingsGridShrink" Header="Shrink to Model" Click="Menu_OnSettingsGridSizeShrink" /> </MenuItem> <MenuItem Name="MenuSettingsGridSettings" Header="Grid Settings..." Click="Menu_OnSettingsGridSettings" /> <Separator /> <MenuItem Name="MenuSettingsModelName" Header="Model Name..." Click="Menu_OnSettingsModelName" /> </MenuItem> <MenuItem Header="Help"> <MenuItem Name="MenuHelpHowTo" Header="How to Play..." Click="Menu_OnHelpHowTo" /> <MenuItem Name="MenuHelpAbout" Header="About AvalonLife..." Click="Menu_OnHelpAbout" /> <MenuItem Name="MenuHelpAboutLife" Header="About the Game of Life..." Click="Menu_OnHelpAboutLife" /> </MenuItem> </Menu> <Button Margin="10,5,5,2" DockPanel.Dock="Right" Name="RunButton" VerticalAlignment="Center" HorizontalAlignment="Right" Click="RunButton_OnClick" Height="20" Width="60" Content="Run" /> <TextBlock Margin="0,5,5,2" VerticalAlignment="Center" Width="60" Foreground="Blue" Name="MenuGridSizeText" DockPanel.Dock="Right" /> <TextBlock Margin="0,5,5,2" VerticalAlignment="Center" Width="50" Text="Grid Size:" DockPanel.Dock="Right" /> </DockPanel> <Canvas Name="TopWrapIndicator" Height="5" Width="Auto" DockPanel.Dock="Top" HorizontalAlignment="Stretch" Background="Gray" /> <StatusBar Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}" Height="30" DockPanel.Dock="Bottom" Padding="4,0,4,0"> <StatusBarItem> <TextBlock Width="Auto" Text="Time:" /> </StatusBarItem> <StatusBarItem> <TextBlock Name="StatusGenCount" Width="30" Style="{StaticResource GenCountStyle}" /> </StatusBarItem> <StatusBarItem> <TextBlock Width="Auto" Text="Census:" /> </StatusBarItem> <StatusBarItem> <TextBlock Name="PopulationCount" Width="30" Style="{StaticResource PopulationCountStyle}" /> </StatusBarItem> <StatusBarItem> <TextBlock Width="Auto" Text="Peak:" /> </StatusBarItem> <StatusBarItem> <TextBlock Name="PeakPopulationCount" Width="30" Style="{StaticResource PeakPopulationCountStyle}" /> </StatusBarItem> <StatusBarItem> <TextBlock Width="Auto" Text="Born:" /> </StatusBarItem> <StatusBarItem> <TextBlock Name="CellBirthCount" Width="40" Style="{StaticResource BirthCountStyle}" /> </StatusBarItem> <StatusBarItem> <TextBlock Width="Auto" Text="Died:" /> </StatusBarItem> <StatusBarItem> <TextBlock Name="CellDeathCount" Width="40" Style="{StaticResource DeathCountStyle}" /> </StatusBarItem> <StatusBarItem> <TextBlock Width="Auto" Padding="10,0,0,0">Speed:</TextBlock> </StatusBarItem> <StatusBarItem> <Slider Name="RunSpeedSlider" Style="{StaticResource RunSpeedSliderStyle}" /> </StatusBarItem> </StatusBar> <Canvas Name="BottomWrapIndicator" Height="5" Width="Auto" DockPanel.Dock="Bottom" HorizontalAlignment="Stretch" Background="Gray" /> <Canvas Name="LeftWrapIndicator" Height="Auto" Width="4" DockPanel.Dock="Left" VerticalAlignment="Stretch" Background="Gray" /> <Canvas Name="RightWrapIndicator" Height="Auto" Width="4" DockPanel.Dock="Right" VerticalAlignment="Stretch" Background="Gray" /> <Grid Name="LifeGrid" Background="White" ForceCursor="True" AllowDrop="True" > <Grid.Resources> <Style TargetType="{x:Type Rectangle}"> <Setter Property="Opacity" Value="{Binding Path=IsAlive}" /> </Style> <Style BasedOn="{StaticResource {x:Type Rectangle}}" TargetType="{x:Type Rectangle}" x:Key="RectStyle" > <Setter Property="Fill" Value="Red" /> </Style> </Grid.Resources> </Grid> </DockPanel> </Grid> </Window>