WPF项目实战视频《一》(主要为WPF基础知识)

1.WPF布局:

Grid,stackPanel,wrapPanel,DockPanel,UniformGrid

Grid 按行列布局,

Grid.ColumnDefinitions列,Grid.RowDefinitions行

Grid.Row="0" Grid.Column="0"

stackPanel 默认从上往下排列

wrapPanel 默认水平排列

DockPanel 可拖拽

UniformGrid 也有行列区分:在有限的空间内均分剩余的空间

orientation 按行排列

Border装饰控件

2.wpf样式基础(Style:属性):修饰WPF的外观和行为

资源样式resources

Style 中x:key="ButtonStyle"为给该属性命名,TargetType="Button"为属性生效的控件类型,然后setter property声明属性 value给声明的属性赋值。BaseOn可设置继承的样式类型

在需要使用该属性的控件中,加上Style="{StaticResource ButtonStyle}"

3.WPF控件模板:ControlTemplate

定义外观,可以根据模板去生成默认的样式

4.WPF数据模板:DataTemplate

定义数据可视化的结构

创建列表类型的控件:ListBox

以往会根据定义的控件名字,在代码中从控件名字中进行操作

5.WPF绑定

数据发生改变时,不需要操作控件(之前的办法),绑定之后控件自动发生改变

cpp 复制代码
//slider 为Slider 控件x:name="slider"命名的,
<TextBox Text="{Binding ElementName=slider ,Path=Value}"	...>

还可以用mode区分绑定模式,单向绑定和双向绑定

6.WPF命令(ICommad)

直接创建另外一个类处理MyCommand继承自ICommand

再再mainWiewModel中使用MyCommand完成业务功能接口

cpp 复制代码
//ShowCommand为mainWiewModel中的实现的业务功能接口
<Button Command="{Binding ShowCommand}" />

8.通知更新

解决在初始化赋值外,在业务功能中将数据进行修改页面不会进行对应修改的问题。

自己创建一个类ViewModelBase,继承自iNotifyPropertyChanged,实现对应的接口

让mainWiewModel继承自ViewModelBase

csharp 复制代码
//先创建
public event PropertyChangedEventHandler PropertyChanged;
private void RaiseProChanged(string propertyName)
{
    PropertyChangedEventHandler handler = PropertyChanged;
    if (handler != null)
    {
        handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

private string name;
public string Name
{
	get{ return name;}
	set { name = value;]
	RaiseProChanged("Name");
}

9.WPF框架:MvvmLight 为一个框架包

例如通知等功能,能有别人封装好的包 有更多的功能接口 使用更方便

10.WPF框架:MicrosoftToolkitMVVM (基于MvvmLight 的扩展,有性能上的一些提升)

继承的类名,函数名字进行对应修改
MicrosoftToolkitMVVM git地址

11.WPF绑定绑定性总结

12.资源基础(资源字典)

csharp 复制代码
<window.Resourse>
		<solidColorBrush  x:Key="SolidColor" Color="Red" />
</window.Resourse>

//使用时:
<Button  BorderBrush="{StaticResource SolidColor}"		//但是为静态加载仅加载一次后续更改不会更新,不会更改的情况使用

<Button  BorderBrush="{DynamicResource SolidColor}"		//动态加载

如果有很多资源那需要添加资源字典的文件,把资源全添加到里面去

13.动画基础(省略没看)

相关推荐
伶俜6613 小时前
# [特殊字符] 零基础学 ArkUI 数据持久化(专题三):5 种存储方案深度对比
学习·华为·wpf·harmonyos
IT策士14 小时前
Redis 从入门到精通:数据结构String 与键管理
数据结构·redis·wpf
AC赳赳老秦14 小时前
技术文章素材收集自动化:用 OpenClaw 自动爬取行业资讯、技术热点、优质文章
运维·开发语言·python·自动化·wpf·deepseek·openclaw
加号315 小时前
【WPF】 Storyboard 故事板动画设计深度解析
wpf
xiaoshuaishuai815 小时前
C# Avalonia 依赖属性与WPF的区别
开发语言·c#·wpf
大G的笔记本1 天前
生产级 Spring Boot 网关简单实现方案
wpf
稷下元歌3 天前
七天学会plc加机器视觉之AI 接入 外设模块开发全详细操作文档(全程配套视频按文档实操)
python·sql·qt·贪心算法·r语言·wpf·时序数据库
happyprince3 天前
11-Hugging Face Transformers 分布式与并行系统深度分析
分布式·c#·wpf
加号33 天前
【WPF】 基于 Canvas 读取并渲染 DXF 文件的技术指南
c#·wpf
AC赳赳老秦4 天前
用 OpenClaw 整理团队技术分享:自动提取 PPT 内容、生成文字稿、同步到知识库
开发语言·python·自动化·powerpoint·wpf·deepseek·openclaw