C#代码事件
C#代码事件
从今天开始,WPF 的学习将上升到一个新的高度。之前主要都是围绕着界面上的内容,今天了解 C# 代码,让界面真正意义上能够有功能。
上节课自定义按钮模板以及设置触发器用触发器实现了鼠标移入和点击时按钮样式变化效果。这节课我们试着用 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,前段有的属性在后段都可以访问到,比如Width,Background。
用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#代码事件的更多相关文章
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- AngularJS进阶(十四)AngularJS灵异代码事件
AngularJS灵异代码事件 注:请点击此处进行充电! 事情原委 router_sys.js源代码如下: 自己在html路由跳转的代码如下: 但是在实际路由过程中,却路由到了下面的状态,相应的页面中 ...
- asp.net 同时执行js事件和代码事件 导出 excel
onclick="return bnQuery_onclick()" onserverclick="bnQuery_ServerClick" public ...
- atitit 业务 触发器原理. 与事件原理 docx
atitit 业务 触发器原理. 与事件原理 docx 1.1. 呵呵,你需要需要一个业务 触发器..1 1.2. 触发器/事件/中断的原理1 1.3. Io 硬件中断的原理( 中断的低层有cpu轮询 ...
- 锋利的jQuery之事件
jQuery中的事件和动画 JavaScript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化或操作时,浏览器会自动生成一个事件.例如:当浏览器 ...
- JQuery基础教程:事件(下)
事件传播 为了说明不可单击的页面元素处理单击事件的能力,例如样式转换器中包含按钮的div元素或者兄弟元素h3,我们来实现一个鼠标指针进入元素和离开元素时的效果,首先需要添加一种翻转状态,表明 ...
- 调试时屏蔽JavaScript库代码 –Chrome DevTools Blackbox功能介绍
代码难免会有Bug,每次我们在Chrome调试代码时,总是会进入各种各样的库代码(比如jQuery.Zepto),但实际上很多时候我们并不希望这样,要是能把这些库代码“拉黑”多好啊. 广大码农喜闻乐见 ...
- WCF基于MSMQ的事件代理服务
前言 公司目前楼主负责的项目正在改版升级,对之前的服务也在作调整,项目里有个操作日志的模块,就决定把日志单独提取出来,做个日志服务,所以就有了这篇文章 正文 MSMQ作为消息队列,B/S项目调用日志服 ...
- JavaScript之事件及动画
一.事件 常用事件 click(function(){...}) //单击事件 hover(function(){...}) //鼠标经过事件 blur(function(){...}) //失去光标 ...
- jQuery之jQuery扩展和事件
一.jQuery事件 常用事件 blur([[data],fn]) 失去焦点 focus([[data],fn]) 获取焦点( 搜索框例子) change([[data],fn]) 当select下拉 ...
随机推荐
- dig命令命令常见用法
域名结构 主机名.次级域名.域名.根域名 host. sld .tld .root 几种常见的解析类型 A记录 CNAME txt记录 dig命令命令常见用法 dig,"domain inf ...
- 什么!你还不会写Vue组件,编写《功能级权限》匹配公式组件
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...
- 使用Win32控制台实现libevent通信
libevent版本:libevent-2.0.22-stable 服务端: #include <string.h> #include <errno.h> #include & ...
- BUUCTF---rsa2
题目 N = 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241 ...
- RabbitMQ 消息实现过程+事务+消息确认
服务端(生产者) 1.引用 rabbitmq 包 2.建立连接工厂 connectionfactory 3.创建 频道 createchannel 4.在频道中 绑定消息队列 5.发布basicpub ...
- ISODate时间转换
private function formatISODate($dateTime) { $date = date("Y-m-d", strtotime($dateTime)); $ ...
- C++宏定义中可变参数列表__VA_ARGS__ 及 QT 提供的宏 QT_OVERLOADED_MACRO
1. 基本用法 VA_ARGS 是 C/C++ 中的预定义宏,用于在宏定义中表示可变参数列表(Variadic Arguments),需与省略号 ... 配合使用.其核心作用是将宏调用中的可变参数原样 ...
- kafka 基础入门
kafka是什么 Kafka (Apache kafka is a distributed streaming platform) ,官方定义是一个分布式流式计算平台.在我开发的项目中,是把kafka ...
- 聊聊一体机与AI知识库
提供AI咨询+AI项目陪跑服务,有需要回复1 之前写了一篇关于一体机的文章: DeepSeek一体机是个什么鬼 一体机产生的原因是春节期间DeepSeek的火爆带动了一些公司的AI需求,但很多公司如医 ...
- MySQL 中如果发生死锁应该如何解决?
MySQL 中如果发生死锁应该如何解决? 死锁是指多个事务在执行过程中因资源争用形成的循环等待,导致无法继续执行.MySQL 会自动检测死锁并选择一个事务进行回滚,但我们可以通过优化设计和操作来避免和 ...