请用C#和xaml实现一个计算器应用
以下是一个简单的使用C#和XAML实现的计算器应用示例:
MainWindow.xaml:
<Window x:Class="CalculatorApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Calculator" Height="350" Width="250">
<Grid>
<TextBox x:Name="resultTextBox" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="10" Height="50" Text="{Binding Result}" IsReadOnly="True" FontSize="20" TextAlignment="Right"/>
<Grid Grid.Row="1" Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button x:Name="btn1" Grid.Row="1" Grid.Column="0" Content="1" Click="Number_Click"/>
<Button x:Name="btn2" Grid.Row="1" Grid.Column="1" Content="2" Click="Number_Click"/>
<Button x:Name="btn3" Grid.Row="1" Grid.Column="2" Content="3" Click="Number_Click"/>
<Button x:Name="btnAdd" Grid.Row="1" Grid.Column="3" Content="+" Click="Operator_Click"/>
<Button x:Name="btn4" Grid.Row="2" Grid.Column="0" Content="4" Click="Number_Click"/>
<Button x:Name="btn5" Grid.Row="2" Grid.Column="1" Content="5" Click="Number_Click"/>
<Button x:Name="btn6" Grid.Row="2" Grid.Column="2" Content="6" Click="Number_Click"/>
<Button x:Name="btnSubtract" Grid.Row="2" Grid.Column="3" Content="-" Click="Operator_Click"/>
<Button x:Name="btn7" Grid.Row="3" Grid.Column="0" Content="7" Click="Number_Click"/>
<Button x:Name="btn8" Grid.Row="3" Grid.Column="1" Content="8" Click="Number_Click"/>
<Button x:Name="btn9" Grid.Row="3" Grid.Column="2" Content="9" Click="Number_Click"/>
<Button x:Name="btnMultiply" Grid.Row="3" Grid.Column="3" Content="*" Click="Operator_Click"/>
<Button x:Name="btn0" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Content="0" Click="Number_Click"/>
<Button x:Name="btnDecimal" Grid.Row="4" Grid.Column="2" Content="." Click="Decimal_Click"/>
<Button x:Name="btnDivide" Grid.Row="4" Grid.Column="3" Content="/" Click="Operator_Click"/>
<Button x:Name="btnClear" Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" Content="C" Click="Clear_Click"/>
<Button x:Name="btnEquals" Grid.Row="5" Grid.Column="2" Grid.ColumnSpan="2" Content="=" Click="Equals_Click"/>
</Grid>
</Grid>
</Window>
MainWindow.xaml.cs:
using System;
using System.Windows;
namespace CalculatorApp
{
public partial class MainWindow : Window
{
private string currentNumber = "";
private string selectedOperator = "";
private double result = 0;
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public string Result { get; set; }
private void Number_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
currentNumber += button.Content.ToString();
Result = currentNumber;
}
private void Operator_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
selectedOperator = button.Content.ToString();
result = double.Parse(currentNumber);
currentNumber = "";
}
private void Decimal_Click(object sender, RoutedEventArgs e)
{
if (!currentNumber.Contains("."))
{
currentNumber += ".";
}
}
private void Clear_Click(object sender, RoutedEventArgs e)
{
currentNumber = "";
selectedOperator = "";
result = 0;
Result = "";
}
private void Equals_Click(object sender, RoutedEventArgs e)
{
double secondNumber = double.Parse(currentNumber);
switch (selectedOperator)
{
case "+":
result += secondNumber;
break;
case "-":
result -= secondNumber;
break;
case "*":
result *= secondNumber;
break;
case "/":
result /= secondNumber;
break;
}
Result = result.ToString();
currentNumber = "";
selectedOperator = "";
}
}
}
在这个示例中,我们使用一个TextBox来显示计算结果,并使用Button元素来输入数字和操作符。当点击数字按钮时,我们将数字添加到当前输入的数字字符串中,并将其显示在TextBox中。当点击操作符按钮时,我们将当前输入的数字转换为double类型,并将其保存为结果。当点击等号按钮时,我们根据当前选择的操作符对结果进行计算,并将结果显示在TextBox中。点击清除按钮时,我们将所有变量重置为初始状态。
这只是一个简单的计算器应用示例,可以根据需求进行扩展和改进
原文地址: http://www.cveoy.top/t/topic/hLfc 著作权归作者所有。请勿转载和采集!