WPF实现计算器界面,界面和对应的xaml程序如下
<Window x:Class="CalculatorDemo.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:CalculatorDemo"
mc:Ignorable="d"
Title="MainWindow"
Height="350"
Width="525"
Icon="appicon.ico">
<DockPanel Name="MyPanel">
<Menu DockPanel.Dock="Top" Height="26">
<MenuItem Header="File">
<MenuItem Click="OnMenuExit" Header="Exit" />
</MenuItem>
<MenuItem Header="View">
<MenuItem Name="StandardMenu" Click="OnMenuStandard" IsCheckable="true" IsChecked="True"
Header="Standard" />
</MenuItem>
<MenuItem Header="Help">
<MenuItem Click="OnMenuAbout" Header="About" />
</MenuItem>
</Menu>
<Grid Name="MyGrid" ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Button Name="B7" Click="DigitBtn_Click" Grid.Column="4" Grid.Row="2">7</Button>
<Button Name="B8" Click="DigitBtn_Click" Grid.Column="5" Grid.Row="2">8</Button>
<Button Name="B9" Click="DigitBtn_Click" Grid.Column="6" Grid.Row="2">9</Button>
<Button Name="B4" Click="DigitBtn_Click" Grid.Column="4" Grid.Row="3">4</Button>
<Button Name="B5" Click="DigitBtn_Click" Grid.Column="5" Grid.Row="3">5</Button>
<Button Name="B6" Click="DigitBtn_Click" Grid.Column="6" Grid.Row="3">6</Button>
<Button Name="B1" Click="DigitBtn_Click" Grid.Column="4" Grid.Row="4">1</Button>
<Button Name="B2" Click="DigitBtn_Click" Grid.Column="5" Grid.Row="4">2</Button>
<Button Name="B3" Click="DigitBtn_Click" Grid.Column="6" Grid.Row="4">3</Button>
<Button Name="B0" Click="DigitBtn_Click" Grid.Column="4" Grid.Row="5">0</Button>
<Button Name="BPeriod" Click="DigitBtn_Click" Grid.Column="5" Grid.Row="5">.</Button>
<Button Name="BPM" Click="OperBtn_Click" Background="Darkgray" Grid.Column="6" Grid.Row="5">+/-</Button>
<Button Name="BDevide" Click="OperBtn_Click" Background="Darkgray" Grid.Column="7" Grid.Row="2">/</Button>
<Button Name="BMultiply" Click="OperBtn_Click" Background="Darkgray" Grid.Column="7" Grid.Row="3">*</Button>
<Button Name="BMinus" Click="OperBtn_Click" Background="Darkgray" Grid.Column="7" Grid.Row="4">-</Button>
<Button Name="BPlus" Click="OperBtn_Click" Background="Darkgray" Grid.Column="7" Grid.Row="5">+</Button>
<Button Name="BSqrt" Click="OperBtn_Click" Background="Darkgray" Grid.Column="8" Grid.Row="2"
ToolTip="Usage: 'A Sqrt'">
Sqrt
</Button>
<Button Name="BPercent" Click="OperBtn_Click" Background="Darkgray" Grid.Column="8" Grid.Row="3"
ToolTip="Usage: 'A % B ='">
%
</Button>
<Button Name="BOneOver" Click="OperBtn_Click" Background="Darkgray" Grid.Column="8" Grid.Row="4"
ToolTip="Usage: 'A 1/X'">
1/X
</Button>
<Button Name="BEqual" Click="OperBtn_Click" Background="Darkgray" Grid.Column="8" Grid.Row="5">=</Button>
<Button Name="BC" Click="OperBtn_Click" Background="Darkgray" Grid.Column="8" Grid.Row="1"
ToolTip="Clear All">
C
</Button>
<Button Name="BCE" Click="OperBtn_Click" Background="Darkgray" Grid.Column="7" Grid.Row="1"
ToolTip="Clear Current Entry">
CE
</Button>
<Button Name="BMemClear" Click="OperBtn_Click" Background="Darkgray" Grid.Column="3" Grid.Row="2"
ToolTip="Clear Memory">
MC
</Button>
<Button Name="BMemRecall" Click="OperBtn_Click" Background="Darkgray" Grid.Column="3" Grid.Row="3"
ToolTip="Recall Memory">
MR
</Button>
<Button Name="BMemSave" Click="OperBtn_Click" Background="Darkgray" Grid.Column="3" Grid.Row="4"
ToolTip="Store in Memory">
MS
</Button>
<Button Name="BMemPlus" Click="OperBtn_Click" Background="Darkgray" Grid.Column="3" Grid.Row="5"
ToolTip="Add To Memory">
M+
</Button>
<TextBlock Name="BMemBox" Grid.Column="3" Grid.Row="1" Margin="10,17,10,17" Grid.ColumnSpan="2">Memory: [empty]</TextBlock>
<local:MyTextBox Grid.ColumnSpan="9" x:Name="DisplayBox" Height="30" Margin="5" />
<local:MyTextBox Grid.Row="1" Grid.ColumnSpan="3" Grid.RowSpan="5" Margin="5" x:Name="PaperBox" />
</Grid>
</DockPanel>
</Window>