WPF基础学习笔记1

1.了解初步

Windows Presentation Foundation (简称WPF)

 

1.1WPF概述

   WPF的核心是一个与分辨率无关的且基于矢量呈现引擎,旨在充分利用现代图形硬件。WPF通过一套完善的应用程序开发功能对核心进行扩展,这些功能包括可扩展应用程序标记语言(XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文件和版式。WPF属于.NET,因此可以整合.NET API其他元素的应用程序。

1.2简介:

  Windows用户界面框架统一的编程模型、语言和框架,做到了界面设计和后端开发分离

1.3特点:

  1.   呈现效果不受分辨率的影响
  2. 基于DirctX 3d技术,可以做出炫酷的界面
  3. 提供UI框架,集成矢量图形,流动文字的支持,3D视觉效果和控件模型框架
  4. UI与业务逻辑彻底分离,UI-XAML描述(底层WPF引擎是把元素解释成对应的对象)
  5. 基于数据的驱动,数据是核心

1.4学习前提:

   基础语言要求首先是入门C#或VB

   开发工具:Visual Studio 2019

   框架环境:.NET CORE 3.1或.NET Framework4.0+

1.5基础知识

 数据类型、类型转换、变量、常量、运算符、字符串、枚举、数组、类相关知识(如继承、重载等)、集合、异常处理、IO流

1.6进阶知识

特性(Attribute)、反射(Reflection)、索引器(Indexer)、委托(Delegate)、事件、泛型、C#多线程

2.入门

2.1控件分类 

来自System.Windows.Controls(程序集:PresentationFramework.dll)

2.1.1 Lable 文本标签

   Lable标示控件文本标签,并提供访问密钥支持

<Style TargetType="{x:Type nb:NbLabel}">
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Padding" Value="5"/>
        <Setter Property="MinWidth" Value="96"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <!--<Setter Property="HorizontalAlignment" Value="Right"/>-->
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type nb:NbLabel}">
                    <Border HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="8"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock x:Name="RequiredTxt" Grid.Column="1" Margin="{TemplateBinding Padding}" Text="*" Width="6" Foreground="Red" HorizontalAlignment="Right" VerticalAlignment="Center" Visibility="Visible"/>
                            <ContentPresenter x:Name="Ctt" Grid.Column="2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                                  RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                        </Trigger>
                        <!--<Trigger Property="RequiredFlag" Value="True">
                            <Setter Property="Visibility" TargetName="RequiredTxt" Value="Visible"/>
                        </Trigger>-->
                        <Trigger Property="RequiredFlag" Value="False">
                            <Setter Property="Text" TargetName="RequiredTxt" Value=""/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

 2.1.2 TextBox 显示或编辑无格式文本

 2.1.3  TextBlock 一个轻型控件

     用于减少流量内容

 2.1.4 Border 边框控件

     边框控件,作用在另一个元素四周绘制边框和/或背景   

 2.1.5 Button 按钮控件

     绘制按钮相关

 2.1.6 Calendar 日历控件

 2.1.7 CheckBox 选择框

 2.1.8 ComboBox 下拉框

 2.1.9 Image 图片控件

 2.1.10 Menu 菜单控件

 2.1.11 ContexMenu 内容菜单

 2.1.12 RadioButton 按钮控件(客户选择但不能清除,代码能清除)

 2.1.13 DataGrid 数据网格-Table

 2.1.14 ListBox 包含可选项列表

2.1.15 ListView 显示数据项列表的控件

2.1.16 DockPanel 定义一个区域,从中可以按相对位置水平或垂直排列各个子元素/码头和港区

2.1.17  Grid 定义由列和行组成的灵活的网格区域

2.1.18 GroupBox 组控件

   标示一个控件,该控件用于创建用户界面(UI)内容边框和标题的容器

2.1.19 PrintDialog 调用标准的Microsdft Windows 打印对话框

2.1.20 ProgressBar 指示操作进度

2.1.21 Canvas 画布控件

2.1.22 RichTexBox 表示对FlowDocument对象进行操作的丰富编辑控件

2.1.23 ToolBar 一组命令或控件提供容器

2.1.24 Expander 折叠控件

   表示一种控件,该控件显示具有可折叠内容显示窗口的标题

2.1.25 TabControl 表示多项的控件,这些项共享屏幕上的同一空间

2.1.26 Frame 一种支持导航的内容空间

2.1.27 Panel 为所有Panel元素提供基类

2.1.28 StackPanel 将子元素排列成水平或垂直的一行

2.1.29 WrapPanel 按从左到右的顺序位置定位子元素在包含框的边缘处将内容切换下一行

3.XAML 声明性标记语言

 3.1简介

  XAML是一种声明性的标记语言,应用于.NET Core编程模型时,XAML简化了为,NET Core应用创建UI的过程。XAML文件通常具有.xaml扩展名的XML文件,可通过任何XML编码对文件进行编码,但通常以UTF-8编码。

 <Grid.ColumnDefinitions>
    <ColumnDefinition Width="8"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="Auto"/>
 </Grid.ColumnDefinitions>

3.2 对象元素语法

 对象元素语法是XAML标记语法,它通过声明XML元素来实例化CLR类或结构。此语法类似于其他标记语言(HTML)的元素语法。

  •    单标签格式。<markName/>
  •    双标签格式。<markName> [可嵌套其他的标签] </markName>

3.3 XAML根元素

  一个XAML文件只能由一个根元素,这样才能同时作为格式正确的XAML文件和有效地XAML文件。对于典型WPF方案,可使用在WPF应用模型中具有 突出意义的根元素(例如:页面的Windows或Page)

在跟标签内部只能有一个二级标签,二级标签内部可以有多个标签,例如三级标签,四级标签.....

 4.WPF和XAML命名控件声明

  在许多XAML文件的根标记中的命名空间声明内,通常可以看到两个XML命名空间声明,第一个声明默认映射整个WPF客户端/框架XAML命名空间:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

 第二个声明映射单独的XAML命名空间,(通常)将其映射到X:前缀:

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

这些声明之间的关系是X:前缀映射支持作为xaml语言定义的一部分的内部函数,而WPF是一种将xaml作为语言的实现,并为XAML定义了其对象的词汇。

使用内部函数

   

****************************************本节(完)****************************************************** 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值