C# WPF开发

WPF基础

WPF开发主要学习使用控件来布局,利用各种样式包装丰富控件,然后通过使用模板来达到预期的布局显示效果,还可以使用常见的MVVM框架来实现前后端互联。

布局: 主要掌握常用的布局方式,Grid,StackPanel、WrapPanel.根据内容分割行列、跨行跨列、垂直分布、水平分布,掌握了能看见图就立马把结构布局熟练写出来

控件: 熟悉基础的控件使用,文本框、输入框、按钮、进度条、日期、下拉、选择框 取值,显示,基本属性。

样式: 熟练的使用样式来封装控件的显示效果。组织及复用控件的样式效果

模板: 通过自己创建模板,夏盖原有的控件模板,定制根据自身需求的控件

绑定: 与界面的元素进行绑定、或者后台的代码进行关联,掌握其绑定的方法模式及绑定的原理。

MVVM: 通过前后端分离的方式、使用第MVVM框架,来整合UI与业务代码,功能 与数据的交互。

举个简单得例子, 利用WPF开发类似于造房子, 当然实际上可能非常细, 对应的如下所示:

|------|---------------|-----------|-------|---------|-----------------|
| 布局 | 控件 | 样式 | 模板 | 绑定 | 业务 |
| 房屋结构 | 施工(砖头水泥、钢筋等等) | 装潢, 涂漆、打磨 | DLY改造 | 家具家电布置等 | 水电、家具等都结合起来正常运转 |

  • WPF项目是怎么启动的,怎么创建项目的,这个就要使用VS来搭建项目了;

  • Xaml的结构是怎么样组成, 命名控件定义引用的方法。

    知道了如何在Xaml中写代码, 尽管在此之前, 很多经验老道的Winform开发者也发现了, 打开工具箱, WPF的控件仍然像winform一样支持拖拽过来, 到某个位置, 然后在Xaml代码中,就会生成对应的代码, 按下F4同样会展现出很多属性, 通过设置后, 所见即所得, 双击类似的普通按钮, 同样可以在后台生成事件代码

控件结构

主要分为ContentControl 类、HeaderedContentControl 类、ItemsControl 类等。

1.ContentControl 类

设置内容的属性为 Content, 控件目录下只允许设置一次Content,如

复制代码
<Button Content="Hello'/>
<Label Content="Hello"/>
<CheckBox Content="Hello"/>

2.HeaderedContentControl 类

相对于ContentControl来说、这类控件即可设置Content, 还有带标题的Header。像比较常见的分组控件GroupBox、TabControl子元素TabItem、它们都是具备标题和内容的控件。

复制代码
<GroupBox Header="测试">
    <TextBlock/>
</GroupBox>

<TabControl>
    <TabItem Header="测试页1"/>
    <TabItem Header="测试页2"/>
    <TabItem Header="测试页3"/>
</TabControl>

同样,该类控件目录下只允许设置一次Conent和Header, 如下错误所示, 出现2次设置Header与Content报错

正确的使用方式:

复制代码
<GroupBox Header="测试">
    <TextBlock/>
</GroupBox>

3.ItemsControl 类

此类控件大多数属于显示列表类的数据、设置数据源的方式一般通过 ItemSource 设置。如下所示:

复制代码
<TabControl Itemssource=""/>
<Menu ItemsSourc=""/>
<ListBox ItemsSourc=""/>
<ItemsControl Itemssource=""/>
相关推荐
枯萎穿心攻击1 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
Eiceblue2 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
昏睡红猹10 小时前
C#脚本化(Roslyn):如何在运行时引入nuget包
c#
张人玉10 小时前
C# 常量与变量
java·算法·c#
就是有点傻11 小时前
在C#中,可以不实例化一个类而直接调用其静态字段
c#
软件黑马王子11 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
阿蒙Amon11 小时前
C#读写文件:多种方式详解
开发语言·数据库·c#
就是有点傻12 小时前
C#如何实现中英文快速切换
数据库·c#
一名用户17 小时前
unity实现梦日记式传送组件
后端·c#·unity3d
阿蒙Amon18 小时前
C#扩展方法全解析:给现有类型插上翅膀的魔法
开发语言·c#