WPF 入门笔记之基础
一、创建WPF程序
1. App.xaml 相当于窗体的配置文件
2. xmlns:xml名称空间的缩写
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"<!--表示引入一组名称空间,presentation主要加载绘制界面相关的-->
3. xmlns:x:多个x表示名称空间的名字
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"<!--xaml编译和解析文件相关的。WPF默认可以有一个没有名称的名称空间.(默认名称空间)-->
4. x:Class="MyWpfApp.MainWindow" 对应的是,这个xmal文件对应的xmal.cs文件中的MainWindow类
x:Class="MyWpfApp.MainWindow"<!--对应的是,这个xmal文件对应的xmal.cs文件中的MainWindow类-->
二、用户界面和赋值
1. 树形结构布局,引用自己的类
xmlns:local="clr-namespace:MyWpfApp"<!--引用当前的名称空间-->
namespace MyWpfApp {public class CurrentData{public CurrentData Data { get; set; }public string Name { get; set; }} }
在XAML中使用
<Window.Resources> <local:CurrentData x:Key="test" Name=""/> </Window.Resources>
2. Attribute=“Value”方式只能使用简单的字符串赋值,赋值的类型赋值不方便
<Grid><Rectangle Height="80" Width="100" Stroke="Black"/> </Grid>
2.1 非字符串类型赋值
<Window.Resources><local:CurrentData x:Key="text" Name="t" Data="aaa" /> </Window.Resources>
首选创建一个配,继承于TypeConverter类来自于(System.ComponentModel),重写ConverterFrom 方法
第二用属性的形式标记在自定义类上
//第二步 [TypeConverterAttribute(typeof(NameToDataTypeConverter))]public class CurrentData{public CurrentData Data { get; set; }public string Name { get; set; }}//第一步public class NameToDataTypeConverter : TypeConverter{public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value){string name = value.ToString();CurrentData data = new CurrentData(){Name = name};return data;}}
3. 属性方式赋值,例如button
<Grid><!--这种用‘/’直接结尾的,叫做空标签。这个标签不具有内容--><Button Height="80" Width="200" Click="Button_Click1" /><Button Height="80" Width="200" Click="Button_Click"><!--标签的内容--><Button.Content><!--属性的方式赋值--><Rectangle Width="20" Height="20" Stroke="Black" Fill="Green"></Rectangle></Button.Content></Button> </Grid>
4. 标签扩展的方式赋值
<Window.Resources><sys:String x:Key="stringvalue">string value</sys:String></Window.Resources><Grid><!--{}大括号表示使用标签扩展--><TextBlock Height="100" Text="{StaticResource ResourceKey=stringvalue}"></TextBlock></Grid>
三、事件处理器,代码后置,导入程序集和引用命名空间
1.事件基本模型
<Grid><Button Height="20" Name="button" Width="200" Content="button" Click="Button_Click"></Button></Grid>
/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void Button_Click(object sender, RoutedEventArgs e){MessageBox.Show("");}}
<Button>:事件的拥有者.Click="Button_Click":事件订阅MainWindow:窗体是事件的响应者private void Button_Click(object sender, RoutedEventArgs e):事件的处理器
事件的订阅可以用C#代码实现
public MainWindow(){InitializeComponent();this.button.Click += Button_Click;}
2. 导入程序集和引用其中的名称空间
转载于:https://www.cnblogs.com/haosit/p/8882535.html
WPF 入门笔记之基础相关推荐
- WPF入门学习----系列基础教程
WPF入门教程系列目录 WPF入门教程系列二--Application介绍 WPF入门教程系列三--Application介绍(续) WPF入门教程系列四--Dispatcher介绍 WPF入门教程系 ...
- ros 发布信息频率_ROS入门笔记二基础
1.创建工作空间 1.什么是工作空间 工作空间(workspace)是一个存放工作开发相关文件的文件夹 src:代码空间(Source Space) build:编译空间(Build Space) d ...
- python基础入门笔记_Python基础入门笔记:函数
函数 举些你可能已经使用过的函数例子:判断数据类型:type(str) 字符串类型数据转为整数型:int(str) ... 复制代码 通过观察规律不难发现,Python 中所谓的使用函数就是把你要处理 ...
- python入门笔记——面向对象基础1_5(小明爱跑步案例)
案例: 小明爱跑步:实际项目需求如下 ①小明体重 75.0 公斤 ②小明每次跑步 会减少0.5公斤 ③小明每次吃东西 会增加 1公斤 1.案例分析: 名字提炼法,小明--人类: 属性--体重 动词提炼 ...
- 基于赛灵思7系列+vivado软件的入门笔记
基于赛灵思7系列+vivado软件的入门笔记 0. 基础准备 0.0. 参考资料 0.1. start up 写一个计数器,实现LED灯闪烁 0.2 常见语法相关的注意事项 0. 基础准备 0.0. ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...
- Python基础入门笔记(二)
前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...
- 11岁过python1级_11岁表弟写的Python零基础入门笔记!
一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...
- Object-C基础入门笔记(一)
OC基础入门笔记之一 // // main.m // oc // // Created by lujun on 2020/9/20. // Copyright © 2020 lujun. All ri ...
最新文章
- 数据结构之队列、双端队列
- 字节跳动 2019 ICME 双赛道冠军团队方案分享
- 字符串匹配(二)——逆向思维 BMH
- 【Flink】Flink1.11.2 on YARN滚动日志配置
- php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
- 第五周作业:瀑布模型
- JAVA酒店管理系统
- 经纬度(度十进制分)—— 度分秒 转换
- java识别验证码图片_Java识别图像、验证码
- 互联网3D数字化时代,3D产品展示开启新商机
- 菜谱分享网站微信小程序开发说明(2)-数据库
- configmap资源简介和应用
- macbook 如何在开盖的情况下连接外接显示器, 同时 macbook 的键盘和触摸板都能工作
- docker之制作镜像
- 本地pycharm连接到远程服务器(超级详细)
- 泛微oa流程表单之请假单(判断请假结束时间不能小于等于请假开始时间)
- switch完成输出星期一到七
- 腾讯云代理商:腾讯云数据库成功落地国信证券 承载日均亿级交易额
- 腾讯《QQ堂》上线17年,将于2022年4月20日停服
- jad 反编译文件夹下的所有class
热门文章
- AcWing 1738. 蹄球(特殊基环树)
- linux时间调整为dst,禁用Linux中的夏令时(DST)更改
- 视觉传达对中职计算机教育影响,自考视觉传达设计毕业论文:平面设计专业信息化教学资源库建设...
- java怎么对用户做自定义模版打印_Printing tools 自定义模板打印的实现
- mysql最大字段数_mysql最大字段数量及 varchar类型总结
- 生存分析——泊松回归(LightGBM)实现生存分析(四)
- 面向对象封装的web服务器
- 第18天:京东网页头部制作
- HTTP协议理解与应用总结
- png图片 透明区域如何 让其不响应鼠标事件?