C#代码事件

从今天开始,WPF 的学习将上升到一个新的高度。之前主要都是围绕着界面上的内容,今天了解 C# 代码,让界面真正意义上能够有功能。

本文同时为b站WPF课程的笔记,相关示例代码

上节课自定义按钮模板以及设置触发器用触发器实现了鼠标移入和点击时按钮样式变化效果。这节课我们试着用 C# 代码来写这样的功能。

在 WPF 中,鼠标移入、鼠标点击……都被定义成了一个个事件。比如说点击的时候,可以写一个点击的事件,让其执行相应的代码。

按钮事件与访问、修改属性

给按钮添加点击事件

Button 添加属性 Click,在 VS 中,按一下等号之后就会出现新建事件处理程序字样(将事件绑定到新创建的名为Button_Click

按``Tab或者Enter之后就会创建在MainWindow.xaml.cs中自动创建Button_Click`事件:

private void Button_Click(object sender, RoutedEventArgs e){}

接下来就可以在函数中写入需要的代码。

用C#代码控制文本内容

新建一个文本框TextBlock,为了让它能够在后台代码中读取到,需要给其一个名字(这里就叫做txtTotal

<TextBlock x:Name="txtTotal" Text="结果"/>

接下来在后端的CSharp代码里面就可以访问到这个控件。不光是内容txtTotal.Text,前段有的属性在后段都可以访问到,比如WidthBackground

用C#代码访问文本内容

比方说欲想访问TextBox中的内容:给TextBox添加一个名字,就可以直接在后端代码中访问到这个控件。

<TextBox x:Name="num1" Grid.Column="0" Width="300" Height="100"/>

访问与修改大体同一个道理。

查看控件的所有属性

xaml界面中鼠标选中控件

右下角的属性中(如果没有属性窗口,则右键控件——属性)

点击右上角的小闪电选定元素的事件处理程序

就会显示所有的属性

将鼠标放在上面会显示属性的含义

需要添加对应属性/事件,双击即可自动添加。

小作业

写了一个简单的加法器

MainWindow.xaml(部分)

<Grid>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBox x:Name="num1" Grid.Column="0" Width="200" Height="100" FontSize="30"/>
<TextBox x:Name="num2" Grid.Column="1" Width="200" Height="100" FontSize="30"/>
</Grid> <Button Content="点我计算" Width="200" Height="30" Click="Button_Click" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock x:Name="txtTotal" Text="" HorizontalAlignment="Center"/> </StackPanel> </Grid>

MainWindow.xaml.cs(部分)

private void Button_Click(object sender, RoutedEventArgs e)
{
int a = Convert.ToInt32(num1.Text);
int b = Convert.ToInt32(num2.Text);
int c = a + b;
txtTotal.Text = c.ToString();
}

小结

给按钮设置Click属性,会自动在新建鼠标点击事件函数。在函数体内写上需要执行的代码。

想要在后台代码中访问到前台的控件的一些属性,只需给前台的控件命名。

给一个按钮控件添加的事件与其他的按钮没有任何关系。换句话说,需要给每一个按钮分单独添加事件。

C#代码事件的更多相关文章

  1. 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用

    文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...

  2. AngularJS进阶(十四)AngularJS灵异代码事件

    AngularJS灵异代码事件 注:请点击此处进行充电! 事情原委 router_sys.js源代码如下: 自己在html路由跳转的代码如下: 但是在实际路由过程中,却路由到了下面的状态,相应的页面中 ...

  3. asp.net 同时执行js事件和代码事件 导出 excel

     onclick="return bnQuery_onclick()" onserverclick="bnQuery_ServerClick"   public ...

  4. atitit 业务 触发器原理. 与事件原理 docx

    atitit 业务 触发器原理. 与事件原理 docx 1.1. 呵呵,你需要需要一个业务 触发器..1 1.2. 触发器/事件/中断的原理1 1.3. Io 硬件中断的原理( 中断的低层有cpu轮询 ...

  5. 锋利的jQuery之事件

    jQuery中的事件和动画 JavaScript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化或操作时,浏览器会自动生成一个事件.例如:当浏览器 ...

  6. JQuery基础教程:事件(下)

     事件传播     为了说明不可单击的页面元素处理单击事件的能力,例如样式转换器中包含按钮的div元素或者兄弟元素h3,我们来实现一个鼠标指针进入元素和离开元素时的效果,首先需要添加一种翻转状态,表明 ...

  7. 调试时屏蔽JavaScript库代码 –Chrome DevTools Blackbox功能介绍

    代码难免会有Bug,每次我们在Chrome调试代码时,总是会进入各种各样的库代码(比如jQuery.Zepto),但实际上很多时候我们并不希望这样,要是能把这些库代码“拉黑”多好啊. 广大码农喜闻乐见 ...

  8. WCF基于MSMQ的事件代理服务

    前言 公司目前楼主负责的项目正在改版升级,对之前的服务也在作调整,项目里有个操作日志的模块,就决定把日志单独提取出来,做个日志服务,所以就有了这篇文章 正文 MSMQ作为消息队列,B/S项目调用日志服 ...

  9. JavaScript之事件及动画

    一.事件 常用事件 click(function(){...}) //单击事件 hover(function(){...}) //鼠标经过事件 blur(function(){...}) //失去光标 ...

  10. jQuery之jQuery扩展和事件

    一.jQuery事件 常用事件 blur([[data],fn]) 失去焦点 focus([[data],fn]) 获取焦点( 搜索框例子) change([[data],fn]) 当select下拉 ...

随机推荐

  1. 依赖注入(DI)与控制反转(IoC)

    .wj_nav { display: inline-block; width: 100%; margin-bottom: 0.375rem } .wj_nav span { display: inli ...

  2. ubuntu升级python版本

    ubuntu升级python版本 # 更新包列表 sudo apt update # 安装 Python 所需的软件包 sudo apt install software-properties-com ...

  3. 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析

    引言 ❝ 小编是一名10年+的.NET Coder,期间也写过Java.Python,从中深刻的认识到了软件开发与语言的无关性.现在小编已经脱离了一线开发岗位,在带领团队的过程中,发现了很多的问题,究 ...

  4. CAS前后端分离解决方案

    CAS前后端分离解决方案 关于CSS服务器的搭建和整合SpringBoot参考:CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 环境与需求 后端:springboot 前端: vu ...

  5. configparser.ConfigParser

    这是fens.conf里的初始内容: 下面是python3中configparser的处理原码:import configparsercf = configparser.ConfigParser()c ...

  6. Redis底层数据结构-quicklist、listpack

    quicklist 在 Redis 3.0 之前,List 对象的底层数据结构是双向链表或者压缩列表.然后在 Redis 3.2 的时候,List 对象的底层改由 quicklist 数据结构实现. ...

  7. python aiohttp异步协程实现同时执行多条请求

    我们在对多个链接进行处理的时候,往往是先请求一个链接获得数据后,再请求第二个. 中间在等待返回数据时候,存在一个空闲时间,脚本啥都没干. 用aiohttp异步协程的方法,创建多条任务发送请求(理论上不 ...

  8. app自动化的三大等待

    app自动化的三大等待与web自动化的三大等待的代码脚本一样 一.硬性等待 硬性等待无论元素是否出现,都必须等待设置的时间再继续执行后面的代码. 使用简单,但是容易浪费时间.所以一般和隐式等待或显式等 ...

  9. C# Equals 和 GetHashCode 方法认知及Distinct方法解析

    参照: 生成 C# Equals 和 GetHashCode 方法重写 - Visual Studio (Windows) | Microsoft Learn 如何修改字符串内容 - C# | Mic ...

  10. C# 拓展方法( 二)——模拟拓展方法的场景

    namespace ExpandingMethodDemo{ class Program { static void Main(string[] args) { Phone ph = new Phon ...