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=""/>
相关推荐
nuclear20111 小时前
使用 C# 将 Word、Excel、PDF 和 PPT文档转换为 Markdown 格式
c#·word转markdown·pdf转markdown·excel转markdown·ppt转markdown·doc转markdown·docx转markdown
深圳视觉软件JJ3 小时前
wpf在image控件上快速显示内存图像
c#
YUNYINGXIA4 小时前
Redis集群
redis·wpf
百锦再5 小时前
.Net 优秀框架 ABP全面详解
microsoft·.net·web·blazor·abp·razor
henreash6 小时前
C# dll版本冲突解决方案
开发语言·c#
阿蒙Amon8 小时前
C#封装HttpClient:HTTP请求处理最佳实践
开发语言·http·c#
ghost14312 小时前
C#学习第29天:表达式树(Expression Trees)
开发语言·c#
安木夕1 天前
C#-Visual Studio宇宙第一IDE使用实践
前端·c#·.net
gregmankiw1 天前
C#调用Rust动态链接库DLL的案例
开发语言·rust·c#