Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- App.xaml:
- <Application x:Class="FakeCalculator.App"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="clr-namespace:FakeCalculator"
- StartupUri="MainWindow.xaml">
- <Application.Resources>
- <SolidColorBrush x:Key="operatorsColor" Color="Green"/>
- <SolidColorBrush x:Key="numbersColor" Color="#333333"/>
- <Style TargetType="Button">
- <Setter Property="Foreground" Value="White"/>
- <Setter Property="FontSize" Value="25"/>
- <Setter Property="Margin" Value="5"/>
- </Style>
- <Style TargetType="Button" x:Key="numberButtonStyle">
- <Setter Property="Foreground" Value="White"/>
- <Setter Property="Background" Value="{StaticResource numbersColor}"/>
- <Setter Property="FontSize" Value="25"/>
- <Setter Property="Margin" Value="5"/>
- </Style>
- <Style TargetType="Button" x:Key="operatorButtonStyle" BasedOn="{StaticResource numberButtonStyle}">
- <Setter Property="Background" Value="{StaticResource operatorsColor}"/>
- </Style>
- <Style TargetType="Button" x:Key="additionalButtonStyle" BasedOn="{StaticResource numberButtonStyle}">
- <Setter Property="Background" Value="LightGray"/>
- <Setter Property="Foreground" Value="Black"/>
- </Style>
- <Style TargetType="Label">
- <Setter Property="FontSize" Value="70"/>
- </Style>
- </Application.Resources>
- </Application>
- -----
- MainWindow.xaml:
- <Window x:Class="FakeCalculator.MainWindow"
- 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:FakeCalculator"
- mc:Ignorable="d"
- MinWidth="200"
- Title="MainWindow" Height="525" Width="350">
- <Grid Margin="10">
- <Grid.ColumnDefinitions >
- <ColumnDefinition MinWidth="25" Width="*"/>
- <ColumnDefinition MinWidth="25" Width="*"/>
- <ColumnDefinition MinWidth="25" Width="*"/>
- <ColumnDefinition MinWidth="25" Width="*"/>
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="2*"/>
- <RowDefinition Height="*" />
- <RowDefinition Height="*" />
- <RowDefinition Height="*" />
- <RowDefinition Height="*" />
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <Label x:Name="lblOperation" Grid.Column="0" Grid.Row="0" FontSize="16" Foreground="Black" Content=""/>
- <Label x:Name="lblResult" Content="0" Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
- <Button Grid.ColumnSpan="1" Grid.Column="0" Grid.RowSpan="1" Grid.Row="1" Content="AC" Style="{StaticResource additionalButtonStyle}" Click="ClearClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="1" Grid.RowSpan="1" Grid.Row="1" Content="+/-" Style="{StaticResource additionalButtonStyle}" Click="OppositeClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="2" Grid.RowSpan="1" Grid.Row="1" Content="1/x" Style="{StaticResource additionalButtonStyle}" Click="ReciprocalClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="0" Grid.RowSpan="1" Grid.Row="2" Content="7" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="1" Grid.RowSpan="1" Grid.Row="2" Content="8" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="2" Grid.RowSpan="1" Grid.Row="2" Content="9" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="0" Grid.RowSpan="1" Grid.Row="3" Content="4" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="1" Grid.RowSpan="1" Grid.Row="3" Content="5" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="2" Grid.RowSpan="1" Grid.Row="3" Content="6" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="0" Grid.RowSpan="1" Grid.Row="4" Content="1" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="1" Grid.RowSpan="1" Grid.Row="4" Content="2" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="2" Grid.RowSpan="1" Grid.Row="4" Content="3" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="2" Grid.Column="0" Grid.RowSpan="1" Grid.Row="5" Content="0" Style="{StaticResource numberButtonStyle}" Click="NumberClick"/>
- <Button Grid.ColumnSpan="1" Grid.Column="2" Grid.RowSpan="1" Grid.Row="5" Content="." Style="{StaticResource numberButtonStyle}" />
- <Button Grid.ColumnSpan="1" Grid.Column="3" Grid.RowSpan="1" Grid.Row="1" Content="/" Style="{StaticResource operatorButtonStyle}" Click="OperationClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="3" Grid.RowSpan="1" Grid.Row="2" Content="*" Style="{StaticResource operatorButtonStyle}" Click="OperationClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="3" Grid.RowSpan="1" Grid.Row="3" Content="-" Style="{StaticResource operatorButtonStyle}" Click="OperationClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="3" Grid.RowSpan="1" Grid.Row="4" Content="+" Style="{StaticResource operatorButtonStyle}" Click="OperationClick" />
- <Button Grid.ColumnSpan="1" Grid.Column="3" Grid.RowSpan="1" Grid.Row="5" Content="=" Style="{StaticResource operatorButtonStyle}" Click="EqualsClick"/>
- </Grid>
- </Window>
- -----
- MainWindow.xaml.cs:
- 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.Navigation;
- using System.Windows.Shapes;
- namespace FakeCalculator
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- string Operation = "";
- double previous;
- double current;
- public MainWindow()
- {
- InitializeComponent();
- }
- private void NumberClick(object sender, RoutedEventArgs e)
- {
- double buttonClick = Int32.Parse(((Button)sender).Content.ToString());
- int PoorlyImplementedSignFunction = (current < 0) ? -1 : 1;
- current = (current * 10 + (buttonClick * PoorlyImplementedSignFunction));
- lblResult.Content = current.ToString();
- }
- private void OppositeClick(object sender, RoutedEventArgs e)
- {
- current *= -1;
- lblResult.Content = current.ToString();
- }
- private void ClearClick(object sender, RoutedEventArgs e)
- {
- current = 0;
- previous = 0;
- Operation = "";
- lblResult.Content = current.ToString();
- }
- private void ReciprocalClick(object sender, RoutedEventArgs e)
- {
- current = 1.0 / current;
- lblResult.Content = current.ToString();
- }
- private void OperationClick(object sender, RoutedEventArgs e)
- {
- if (Operation == "")
- {
- previous = current;
- current = 0;
- lblResult.Content = current.ToString();
- Operation = ((Button)sender).Content.ToString();
- }
- else
- {
- EqualsClick(sender, e);
- Operation = ((Button)sender).Content.ToString();
- previous = current;
- current = 0;
- }
- lblOperation.Content = Operation;
- }
- private void EqualsClick(object sender, RoutedEventArgs e)
- {
- if (current == 0 && previous == 0 || Operation == "" || (Operation == "/" && current == 0))
- {
- lblResult.Content = "Error";
- }
- else
- {
- switch (Operation)
- {
- case "/":
- current = previous / current;
- break;
- case "+":
- current += previous;
- break;
- case "-":
- current -= previous;
- break;
- case "*":
- current *= previous;
- break;
- }
- previous = 0;
- lblResult.Content = current.ToString();
- Operation = "";
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement