WPF学习笔记

WPF学习笔记


计算器实现

<pre><code class="language-csharp">&amp;lt;Grid&amp;gt; &amp;lt;Grid.ColumnDefinitions&amp;gt; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt; &amp;lt;ColumnDefinition&amp;gt;&amp;lt;/ColumnDefinition&amp;gt; &amp;lt;/Grid.ColumnDefinitions&amp;gt; &amp;lt;Grid.RowDefinitions&amp;gt; &amp;lt;RowDefinition Height=&amp;quot;5*&amp;quot;&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;RowDefinition&amp;gt;&amp;lt;/RowDefinition&amp;gt; &amp;lt;/Grid.RowDefinitions&amp;gt; &amp;lt;TextBox x:Name=&amp;quot;txtName&amp;quot; Grid.ColumnSpan=&amp;quot;4&amp;quot; BorderThickness=&amp;quot;0 0 0 1&amp;quot; IsReadOnly=&amp;quot;True&amp;quot; FontSize=&amp;quot;23&amp;quot; VerticalAlignment=&amp;quot;Bottom&amp;quot;&amp;gt; &amp;lt;/TextBox&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;1&amp;quot; Content=&amp;quot;AC&amp;quot; Margin=&amp;quot;5&amp;quot; Width=&amp;quot;40&amp;quot; Height=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;1&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Content=&amp;quot;X&amp;quot; Margin=&amp;quot;5&amp;quot; Width=&amp;quot;40&amp;quot; Height=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;1&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Content=&amp;quot;%&amp;quot; Width=&amp;quot;40&amp;quot; Height=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;1&amp;quot; Grid.Column=&amp;quot;3&amp;quot; Content=&amp;quot;/&amp;quot; Width=&amp;quot;40&amp;quot; Height=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;2&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Content=&amp;quot;7&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;2&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Content=&amp;quot;8&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;2&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Content=&amp;quot;9&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;2&amp;quot; Grid.Column=&amp;quot;3&amp;quot; Content=&amp;quot;*&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;3&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Content=&amp;quot;4&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;3&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Content=&amp;quot;5&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;3&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Content=&amp;quot;6&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;3&amp;quot; Grid.Column=&amp;quot;3&amp;quot; Content=&amp;quot;-&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;4&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Content=&amp;quot;1&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;4&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Content=&amp;quot;2&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;4&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Content=&amp;quot;3&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;4&amp;quot; Grid.Column=&amp;quot;3&amp;quot; Content=&amp;quot;+&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Coral&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;5&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Content=&amp;quot;0&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;5&amp;quot; Grid.Column=&amp;quot;2&amp;quot; Content=&amp;quot;.&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Khaki&amp;quot; Foreground=&amp;quot;Black&amp;quot; Click=&amp;quot;Button_Click_2&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;Button Grid.Row=&amp;quot;5&amp;quot; Grid.Column=&amp;quot;3&amp;quot; Content=&amp;quot;=&amp;quot; Height=&amp;quot;40&amp;quot; Width=&amp;quot;40&amp;quot; Background=&amp;quot;Orange&amp;quot; Foreground=&amp;quot;White&amp;quot; Click=&amp;quot;Button_Click_1&amp;quot;&amp;gt; &amp;lt;Button.Template&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;Button&amp;quot;&amp;gt; &amp;lt;Border CornerRadius=&amp;quot;5&amp;quot; Background=&amp;quot;{TemplateBinding Background}&amp;quot;&amp;gt; &amp;lt;ContentPresenter HorizontalAlignment=&amp;quot;Center&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/ContentPresenter&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Button.Template&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;/Grid&amp;gt; private void Button_Click(object sender, RoutedEventArgs e) { txtName.Clear(); } //等于 private void Button_Click_1(object sender, RoutedEventArgs e) { NCalc.Expression exp = new NCalc.Expression(txtName.Text); var result = exp.Evaluate(); txtName.Text += (sender as Button).Content + result.ToString() ; } //点击数字 private void Button_Click_2(object sender, RoutedEventArgs e) { txtName.Text += (sender as Button).Content; }</code></pre>

页面列表

ITEM_HTML