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下拉 ...
随机推荐
- selenium 提示 Non-UTF-8 code starting with '\xc4'
解决(1):在程序最上方加上语句,# coding=gbk 解决(2):在preference下进行修改
- 考勤运行提示‘Length of values (115) does not match length of index (116) >>> ’
源码 df['餐补'] = money_list 解决思路: 1.分别打印输出两个字段长度 本来以为是每个月的文件格式不一致导致有的文件好用有的文件不好用 经过耐心查看代码 前面的算法统计有一个本应该 ...
- 微信小程序反编译~2022年
小程序反编译 前言 微信小程序反编译可以通过对小程序包进行反编来获取小程序源码,在一次信息收集的过程中对某公司的APP.微信公众号.小程序进行抓包数据分析寻找接口等有用的信息时,在抓包过程中由于微信的 ...
- Alibaba Sentinel SSRF漏洞分析(CVE-2021-44139)
Alibaba Sentinel SSRF漏洞分析(CVE-2021-44139) 一.Alibaba Sentienl 简介 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel ...
- go 判断数组下标是否存在
举例 现在需要判断命令行是否传了参数,即 os.Args[1] 是否存在 如果使用下述的判断: func main() { fmt.Println(os.Args[1]) } 会报错:index ou ...
- apisix~key-auth多消费的使用
在 APISIX 中使用 key-auth 插件实现基于密钥的认证,以下是详细的配置步骤,包括如何保存密钥和证书,以及如何将这些信息分配给客户端 A 和 B. 场景说明 服务 C 是后端服务,需要通过 ...
- 【Linux】5.1 Shell简介
Shell简介 1. Shell基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这 ...
- 7. RabbitMQ 消息队列——延时队列(Spring Boot + 安装message_exchange"延迟插件" 的详细配置说明)的详细讲解
7. RabbitMQ 消息队列--延时队列(Spring Boot + 安装message_exchange"延迟插件" 的详细配置说明)的详细讲解 @ 目录 7. Rabbit ...
- Unity/Auto Layout -- 理解Layout Elements(布局元素)
- 『Plotly实战指南』--雷达图绘制与应用
在数据分析和可视化领域,雷达图是一种适用于多维数据的可视化.综合评估和决策支持的工具. 雷达图通过将数据点沿多个轴分布,并通过多边形面积或线条连接来展示数据的多维度特征,能够直观地呈现数据在各个维度上 ...