C#-WPF-基础

课程链接:全新C#/WPF入门到多项目实战开发教程 | 适合新手 200P持续更新 2021最新录制上位机合集(MVVM/控件/winform/通信/绑定工控)B0469_哔哩哔哩_bilibili

2022全新录制 WPF数据绑定详细教程 零基础学习入门到精通一步到位 (C#/零基础/WPF/数据绑定)B0976_哔哩哔哩_bilibili

10月最新【WPF入门到实战】100P 已完结 最全WPF合集教程 快速上手(WPF上位机/零基础/项目实战/C#/.NET/工控/PLC)B1246_哔哩哔哩_bilibili

重庆教主:up主

WPF&MVVM项目实战教学之《数据管理系统》QQ群864486030_哔哩哔哩_bilibili

WPF实战《c#进销存管理系统》手把手教您开发桌面应用程序_哔哩哔哩_bilibili

C#&WPF实战之《仓库管理系统》QQ群864486030_哔哩哔哩_bilibili

数据访问层、、业务逻辑层、UI层、其他类

业务逻辑层调用数据访问层

,界面UI层调用业务逻辑层

1、基础控件

1.1、MVVM

1.1.1、数据绑定与行为绑定

1、ICommand 

与行为绑定

2、INotifyPropertyChanged

两个对象

数据绑定值改变,属性改变。

C# 计算器应用程序

ICommand.cs

 internal class CommandBase:ICommand
 {
     public event EventHandler CanExecuteChanged;
     public bool CanExecute(object parameter)
     {
         //  绑定了这个命令的按钮是否可用
         return DoCanExecute?.Invoke(parameter)==true;
     }
     public void Execute(object parameter)    //   与CanExecute为ICommand的方法
     {
         //  逻辑控制
         DoAction?.Invoke(parameter);
     }
     public Action<object> DoAction { get; set; }
     public Func<object, bool> DoCanExecute{ get; set; }
     public void RaiseCanChanged()
     {
         CanExecuteChanged?.Invoke(this, new EventArgs());   //  CanExecuteChanged  当出现时为ICommand的事件  当发生时候会执行CanExecute方法
     }
 }

MainViewModel.cs

 public class MainViewModel:INotifyPropertyChanged 
 {
     public event PropertyChangedEventHandler PropertyChanged;
     private string _value;
     MainWindow _mainWindow=null;
     //public MainViewModel( MainWindow mainWindow)
     //{
     //    _mainWindow=mainWindow;
     //}
     public string Value
     {
         get { return _value; }
         set
         {
             _value = value;
             //_mainWindow.tbName.Text = value;
             PropertyChanged?.Invoke(this,new PropertyChangedEventArgs("Value"));
             if (value == "100")
             {
                 ValueColor = Brushes.Red;
             }
             (this.ValueCommand as CommandBase).RaiseCanChanged();
         }
     }
     private Brush _valueColor = Brushes.Orange;
     public Brush ValueColor
     {
         get{ return _valueColor; }

         set{ _valueColor = value;
             //  更改 PropertyChanged 组件上的属性时,将引发事件。 对象 PropertyChangedEventArgs 指定更改的属性的名称。
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ValueColor"));   //  向客户端发出某一属性值已更改的通知
         } 
     }
     private ICommand _valueCommand;  //  = new CommandBase() { DoAction = new Action<object>() };    //   对属性赋值
     public ICommand ValueCommand
     {
         get { 
              if(_valueCommand==null)
             {
                 _valueCommand = new CommandBase() 
                 { 
                     DoAction = new Action<object>(ValueCommandAction) ,
                     DoCanExecute = new Func<object,bool>(CanEcecute)
                 };
             }
             return _valueCommand; }
         set { _valueCommand = value; }
     }
     private void ValueCommandAction(object obj)
     {
         Value = "100";
     }
     private bool CanEcecute(object obj)
     {
         return !string.IsNullOrEmpty(Value);
     }
   
 }

MainWindow.cs

    MainViewModel mainviewmodel = null;

    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new MainViewModel();

    }
}

1.1.2、简介

1、WPF

可以做动画,前后端分离,

.net UI框架,集成了矢量图形,流动字体支持,3d视觉效果和控件模型框架,UI与业务逻辑分离,UI-XAML描述,  WPF引擎解释为.NET对象

布局控件:  panel

内容控件:ContetControl

带标题内容控件,内容控件可以设置标题:Header  父类:HeaderedContentControl

条目空间  可以显示一列数据,数据类型一般相同ItemControl

代表提的条目空间

2、XAML

:为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言” ,提供一种便于拓展和定位的语法来定义和程序业务逻辑分离的用户界面

定义应用程序的界面元素

显示声明WPF资源(样式,模板,动画等)

可扩展性(UI控件)

集中关注界面设计

命名空间: xaml与.net程序语言一样,也是通过命名空间有效组织xaml内部的相关元素,不一样,xaml解析器标准

自定义类或程序集映射语法

xmlns:[必选前缀] = "clr-namespace:[命名空间];assembly=[程序集名称]"

1.1.3、WPF基础

app.config   配置文件  连接字符串, 配置信息

App.xaml  设置应用程序起始文件,系统资源级

App.xaml.cs    app.xaml文件的后台类文件

MainWindow.xaml   Window ----WPF应用程序界面与Xaml设计文件

MainWindow.xaml.cs--------xaml窗口文件的后台代码文件

StartupUri = "MainWindow.xaml"      指定起始文件

<Application.Resource>  定义整个WPF应用程序的资源

<Grid>  布局控件  网格型

事件注册:05 标签文本框密码框按钮介绍_哔哩哔哩_bilibili

1.2、WPF控件

1、Button

2、RadioButton

3、CheckBox

父类:ToggleButtton

复选框:允许可以选择多个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值