WPF ile Hesap Makinesi Uygulaması

WPF ile Hesap Makinesi Uygulaması

Şu zamana kadar yazdığımız yazılarımızda bulunan kodlarımız ve C# bilginiz ile basit bir hesap makinesi uygulaması geliştirdik.

XMAL Arayüzü:

<Window x:Class="WPFGiris.D3.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:WPFGiris.D3"         mc:Ignorable="d"         Title="Hesap Makinesi" Height="525" Width="350">     <Grid Margin="10">                  <Grid.ColumnDefinitions>             <ColumnDefinition Width="*"/>             <ColumnDefinition Width="*"/>             <ColumnDefinition Width="*"/>             <ColumnDefinition Width="*"/>         </Grid.ColumnDefinitions>         <Grid.RowDefinitions>             <RowDefinition Height="2*"/>             <RowDefinition Height="*"/>             <RowDefinition Height="*"/>             <RowDefinition Height="*"/>             <RowDefinition Height="*"/>             <RowDefinition Height="*"/>         </Grid.RowDefinitions>         <Label x:Name="resultLabel" Content="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="60"/>         <Button x:Name="acButton" Click="AcButton_Click" Content="AC" Grid.Row="1" Margin="5"/>         <Button x:Name="negativeButton" Click="NegativeButton_Click" Content="+/1" Grid.Row="1" Grid.Column="1" Margin="5"/>         <Button x:Name="percentageButton" Click="PercentageButton_Click" Content="%" Grid.Row="1" Grid.Column="2" Margin="5"/>         <Button x:Name="divisionButton" Click="OperationButton_Click" Content="/" Grid.Row="1" Grid.Column="3" Margin="5"/>         <Button x:Name="sevenButton" Click="NumberButton_Click" Content="7" Grid.Row="2" Grid.Column="0" Margin="5"/>         <Button x:Name="eightButton" Click="NumberButton_Click" Content="8" Grid.Row="2" Grid.Column="1" Margin="5"/>         <Button x:Name="nineButton" Click="NumberButton_Click" Content="9" Grid.Row="2" Grid.Column="2" Margin="5"/>         <Button x:Name="multiplicationButton" Click="OperationButton_Click"  Content="*" Grid.Row="2" Grid.Column="3" Margin="5"/>         <Button x:Name="fourButton" Click="NumberButton_Click" Content="4" Grid.Row="3" Grid.Column="0" Margin="5"/>         <Button x:Name="fiveButton" Click="NumberButton_Click" Content="5" Grid.Row="3" Grid.Column="1" Margin="5"/>         <Button x:Name="sixButton" Click="NumberButton_Click" Content="6" Grid.Row="3" Grid.Column="2" Margin="5"/>         <Button x:Name="substractionButton" Click="OperationButton_Click"  Content="-" Grid.Row="3" Grid.Column="3" Margin="5"/>         <Button x:Name="oneButton" Click="NumberButton_Click" Content="1" Grid.Row="4" Grid.Column="0" Margin="5"/>         <Button x:Name="twoButton" Click="NumberButton_Click"  Content="2" Grid.Row="4" Grid.Column="1" Margin="5"/>         <Button x:Name="threeButton" Click="NumberButton_Click"  Content="3" Grid.Row="4" Grid.Column="2" Margin="5"/>         <Button x:Name="plusButton" Click="OperationButton_Click" Content="+" Grid.Row="4" Grid.Column="3" Margin="5"/>         <Button x:Name="zeroButton" Click="NumberButton_Click" Content="0" Grid.Row="5" Grid.ColumnSpan="2" Margin="5"/>         <Button x:Name="dotButton" Click="DotButton_Click"  Content="." Grid.Row="5" Grid.Column="2" Margin="5"/>         <Button x:Name="equalButton" Click="EqualButton_Click" Content="=" Grid.Row="5" Grid.Column="3" Margin="5"/>     </Grid> </Window> 
WPF ile Hesap Makinesi Uygulaması
Derlenmiş Görünümü

CODEBEHIND KISMI:

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 WPFGiris.D3 {     /// <summary>     /// MainWindow.xaml etkileşim mantığı     /// </summary>     public partial class MainWindow : Window     {         double lastNumber,result;         SelectedOperator selectedOperator;         public MainWindow()         {             InitializeComponent();             //resultLabel.Content = "0"; //uygulama yüklenirken ilk atadığımız sayı... istersek başka sayı verebiliriz.              acButton.Click += AcButton_Click; //AcButton_Click olayını çalıştırır            // negativeButton.Click += NegativeButton_Click; Gerek yok.             percentageButton.Click += PercentageButton_Click;             //equalButton.Click += EqualButton_Click;         }          private void NumberButton_Click(object sender, RoutedEventArgs e)         {             int selectedValue = 0;              if (sender == zeroButton)                 selectedValue = 0; //tıklanan butona göre selectedValue değişkenine sayı atarız             if (sender == oneButton)                 selectedValue = 1;             if (sender == twoButton)                 selectedValue = 2;             if (sender == threeButton)                 selectedValue = 3;             if (sender == fourButton)                 selectedValue = 4;             if (sender == fiveButton)                 selectedValue = 5;             if (sender == sixButton)                 selectedValue = 6;             if (sender == sevenButton)                 selectedValue = 7;             if (sender == eightButton)                 selectedValue = 8;             if (sender == nineButton)                 selectedValue = 9;              if (resultLabel.Content.ToString() == "0")             {                 resultLabel.Content = $"{selectedValue}"; //butonun valuesinde yer alanı atar             }else             {                 resultLabel.Content = $"{resultLabel.Content}{selectedValue}"; // resultLabel content sıfır değilse mevcut sayının arkasına butonun valuesinde yer alan değeri ekler.             }          }                    private void OperationButton_Click(object sender, RoutedEventArgs e)         {              if (double.TryParse(resultLabel.Content.ToString(), out lastNumber))             {                 resultLabel.Content = "0";             }              if (sender == multiplicationButton)                 selectedOperator = SelectedOperator.Multiplication;             if (sender == divisionButton)                 selectedOperator = SelectedOperator.Division;             if (sender == plusButton)                 selectedOperator = SelectedOperator.Addition;             if (sender == substractionButton)                 selectedOperator = SelectedOperator.Substraction;          }            private void AcButton_Click(object sender, RoutedEventArgs e)         {             resultLabel.Content = "0";             lastNumber=0;             result=0;         }          private void PercentageButton_Click(object sender, RoutedEventArgs e)         {             double tempNumber;             if (double.TryParse(resultLabel.Content.ToString(), out tempNumber))             {                 tempNumber = tempNumber / 100;                 if (lastNumber != 0)                     tempNumber *= lastNumber;                 resultLabel.Content = tempNumber.ToString();             }         }          private void EqualButton_Click(object sender, RoutedEventArgs e)         {             double NewNumber;              if (double.TryParse(resultLabel.Content.ToString(), out NewNumber))             {                 switch (selectedOperator)                 {                     case SelectedOperator.Addition:                         result = SimpleMath.Add(lastNumber, NewNumber);                         break;                     case SelectedOperator.Substraction:                         result = SimpleMath.Substraction(lastNumber, NewNumber);                         break;                     case SelectedOperator.Multiplication:                         result = SimpleMath.Multiply(lastNumber, NewNumber);                         break;                     case SelectedOperator.Division:                         result = SimpleMath.Divide(lastNumber, NewNumber);                         break;                 }                  resultLabel.Content = result.ToString();               }          }          private void DotButton_Click(object sender, RoutedEventArgs e)         {             if (resultLabel.Content.ToString().Contains("."))             {                 //Bir şey yapma             }             else             {                 resultLabel.Content = $"{resultLabel.Content}.";             }                      }          private void NegativeButton_Click(object sender, RoutedEventArgs e)         {             if(double.TryParse(resultLabel.Content.ToString(), out lastNumber))             {                 lastNumber = lastNumber * (-1);                 resultLabel.Content = lastNumber.ToString();             }         }     }      public enum SelectedOperator     {         Addition,         Substraction,         Multiplication,         Division     }      public class SimpleMath     {         public static double Add(double n1, double n2)         {             return n1 + n2;         }          public static double Substraction(double n1, double n2)         {             return n1 - n2;         }          public static double Multiply(double n1, double n2)         {             return n1 * n2;         }          public static double Divide(double n1, double n2)         {             return n1 / n2;         }      }  } 


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

“WPF ile Hesap Makinesi Uygulaması” için bir yanıt

WPF ile MessageBox kullanımı | <kodlasana için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir