WPF_2

事件处理器与代码后置

以下就是新建了一个事件Click,事件拥有者为Button

cs 复制代码
 <Button Width="120"Height="30" Content="Click Me!" Click="Button_Click"/>

以这个来作为事件处理器,响应者是窗体,事件订阅是 Click="Button_Click"。

cs 复制代码
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     MessageBox.Show("Hello WPF");
 }

事件订阅也可以这样:

cs 复制代码
public MainWindow()
{
    InitializeComponent();
    this.Button_Click += new RoutedEventHandler(Button_Click);
}

导入程序集与引入其中的名称空间

现在流行程序分为几个小组件,这些小组件可以被其他项目引用和共享。

下方代码功能是:为员工计算每个月的工资,而且该计算工资功能是组件的形式,可以在程序其他地方显式或引用。

想在另一个程序集中生成一个组件。然后在该程序集中引用。

在解决方案中新建一个用户控件库如下:

删除自带的xaml,

自己添加一个SalaryCaluculator.xaml用户控件,用于计算工资

在自定义的SalaryCaluculator.xaml中内容写成如下:

cs 复制代码
<UserControl x:Class="WpfControlLibrary1.SalaryCalculator"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="240" Height="160" Background="LightBlue">

    <Canvas>
        <Label Content="基本工资:" Canvas.Left="18" Canvas.Top="16" Name="label1"/>
        <Label Content="岗位工资:" Canvas.Left="18" Canvas.Top="66" HorizontalAlignment="Center" VerticalAlignment="Top" Name="label2"/>
        <Label Content="实际工资:" Canvas.Left="18" Canvas.Top="41" HorizontalAlignment="Center" VerticalAlignment="Top" Name="label3"/>
        <TextBox Canvas.Left="93" TextWrapping="Wrap" x:Name="TextBox1" Canvas.Top="20" Width="120"/>
        <TextBox Canvas.Left="93" TextWrapping="Wrap" x:Name="TextBox2" Canvas.Top="45" Width="120"/>
        <TextBox Canvas.Left="93" TextWrapping="Wrap" x:Name="TextBox3" Canvas.Top="71" Width="120"/>
        <Button Content="计算" Canvas.Left="93" Canvas.Top="117" HorizontalAlignment="Left" VerticalAlignment="Center" Width="120" Click="Button_Click"/>
    </Canvas>
</UserControl>

在上方button中添加如下响应:

cs 复制代码
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     this.TextBox3.Text=this.TextBox2.Text+this.TextBox1.Text;//实际工资为前两者和
 }

会得到如上一个控件,那么如何在主程序中使用:

①将主界面分为4部分:

cs 复制代码
 <Grid>
     <Grid.RowDefinitions>
         <RowDefinition/>
         <RowDefinition/>//将界面上下两半
     </Grid.RowDefinitions>
     
     <Grid.ColumnDefinitions>
         <ColumnDefinition/>
         <ColumnDefinition/>//将界面分成作用两界面
     </Grid.ColumnDefinitions>
 </Grid>

现在想在4个部分都加上控件:

②给主程序添加自定义控件的依赖,然后用xmlns引用:

主程序中添加(目的是引入名称空间):

cs 复制代码
xmlns:control="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1"

然后就在Grid中可以引用了,写如下四行代码引用,就欧克了

通过以上学习可知,想用一个控件,首先是要引用它所在的类库,然后用xmlns引用类库中的名称空间,才能使用控件。一般用自带的类库时,xmlns后跟的是http......,这种可以一下引用多个名称空间。

cs 复制代码
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

XAML的注释

注释格式

cs 复制代码
<!--
注释内容
-->

①图标方式注释:

选中要注释的内容,再点如下:

该图标后边的 图标可以用来解注释。

②同时按住Crtl+K+C进行注释,同时按住Crtl+K+U进行解开注释

③自定义快捷键,点击工具,点击键盘,点击需要更改命令的快捷键

相关推荐
就是有点傻1 天前
WPF按钮走马灯效果
wpf
zuozewei1 天前
虚拟电厂聚合商平台安全技术体系深度解读
安全·wpf
极客智造1 天前
WPF 自定义控件:AutoGrid 实现灵活自动布局的网格控件
wpf
极客智造1 天前
WPF Grid 布局高效扩展:GridHelpers 附加属性工具类全解析
wpf
张人玉1 天前
WPF 多语言实现完整笔记(.NET 4.7.2)
笔记·.net·wpf·多语言实现·多语言适配
暖馒1 天前
深度剖析串口通讯(232/485)
开发语言·c#·wpf·智能硬件
我要打打代码2 天前
WPF控件(2)
wpf
c#上位机2 天前
wpf之行为
c#·wpf
kylezhao20192 天前
深入浅出地理解 C# WPF 中的属性
hadoop·c#·wpf
全栈开发圈2 天前
干货分享|HarmonyOS核心技术理念
wpf·鸿蒙