一、创建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 入门笔记之基础相关推荐

  1. WPF入门学习----系列基础教程

    WPF入门教程系列目录 WPF入门教程系列二--Application介绍 WPF入门教程系列三--Application介绍(续) WPF入门教程系列四--Dispatcher介绍 WPF入门教程系 ...

  2. ros 发布信息频率_ROS入门笔记二基础

    1.创建工作空间 1.什么是工作空间 工作空间(workspace)是一个存放工作开发相关文件的文件夹 src:代码空间(Source Space) build:编译空间(Build Space) d ...

  3. python基础入门笔记_Python基础入门笔记:函数

    函数 举些你可能已经使用过的函数例子:判断数据类型:type(str) 字符串类型数据转为整数型:int(str) ... 复制代码 通过观察规律不难发现,Python 中所谓的使用函数就是把你要处理 ...

  4. python入门笔记——面向对象基础1_5(小明爱跑步案例)

    案例: 小明爱跑步:实际项目需求如下 ①小明体重 75.0 公斤 ②小明每次跑步 会减少0.5公斤 ③小明每次吃东西 会增加 1公斤 1.案例分析: 名字提炼法,小明--人类: 属性--体重 动词提炼 ...

  5. 基于赛灵思7系列+vivado软件的入门笔记

    基于赛灵思7系列+vivado软件的入门笔记 0. 基础准备 0.0. 参考资料 0.1. start up 写一个计数器,实现LED灯闪烁 0.2 常见语法相关的注意事项 0. 基础准备 0.0. ...

  6. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  7. Python基础入门笔记(二)

    前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...

  8. 11岁过python1级_11岁表弟写的Python零基础入门笔记!

    一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...

  9. Object-C基础入门笔记(一)

    OC基础入门笔记之一 // // main.m // oc // // Created by lujun on 2020/9/20. // Copyright © 2020 lujun. All ri ...

最新文章

  1. 数据结构之队列、双端队列
  2. 字节跳动 2019 ICME 双赛道冠军团队方案分享
  3. 字符串匹配(二)——逆向思维 BMH
  4. 【Flink】Flink1.11.2 on YARN滚动日志配置
  5. php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
  6. 第五周作业:瀑布模型
  7. JAVA酒店管理系统
  8. 经纬度(度十进制分)—— 度分秒 转换
  9. java识别验证码图片_Java识别图像、验证码
  10. 互联网3D数字化时代,3D产品展示开启新商机
  11. 菜谱分享网站微信小程序开发说明(2)-数据库
  12. configmap资源简介和应用
  13. macbook 如何在开盖的情况下连接外接显示器, 同时 macbook 的键盘和触摸板都能工作
  14. docker之制作镜像
  15. 本地pycharm连接到远程服务器(超级详细)
  16. 泛微oa流程表单之请假单(判断请假结束时间不能小于等于请假开始时间)
  17. switch完成输出星期一到七
  18. 腾讯云代理商:腾讯云数据库成功落地国信证券 承载日均亿级交易额
  19. 腾讯《QQ堂》上线17年,将于2022年4月20日停服
  20. jad 反编译文件夹下的所有class

热门文章

  1. AcWing 1738. 蹄球(特殊基环树)
  2. linux时间调整为dst,禁用Linux中的夏令时(DST)更改
  3. 视觉传达对中职计算机教育影响,自考视觉传达设计毕业论文:平面设计专业信息化教学资源库建设...
  4. java怎么对用户做自定义模版打印_Printing tools 自定义模板打印的实现
  5. mysql最大字段数_mysql最大字段数量及 varchar类型总结
  6. 生存分析——泊松回归(LightGBM)实现生存分析(四)
  7. 面向对象封装的web服务器
  8. 第18天:京东网页头部制作
  9. HTTP协议理解与应用总结
  10. png图片 透明区域如何 让其不响应鼠标事件?