• 武汉软件开发:一看就会的wpf入门教程


      据了解,目前武汉软件开发市场关于PC端桌面开发的技术主要有两块:winform和wpf。wpf是微软既winform之后推出的一套新的桌面开发技术。采用数据驱动的方式可以轻松编写出非常炫的界面。

    武汉蚂蹄软件服务中心-武汉软件开发

    1、XAML语言是一种界面描述语言,用户界面用XAML的元素或属性来表示,WPF引擎把XAML描述的UI元素解释为相应的.NET对象,从而在桌面程序上创建相应的控件。

    2、WPF编程模型是XAML标记语言和逻辑编程语言(C#)的混合,界面元素以及他们的相互关系是用XAML的节点、属性以及相互关系来描述的。

    3、XAML的根元素常见的主要有2个:Window(用于桌面应用程序)、Page(Web应用程序)。不常见的:FlowDocument、Application和Grid。

    4、XAML中命名空间用xmlns属性表示,并且一个XAML命名空间对应一个或多个.NET命名空间(好处是在XAML中不必写过多的命名空间)。常用的两个命名空间是:http://schemas.microsoft.com/winfx/2006/xaml/presentation(默认命名空间)和http://schemas.microsoft.com/winfx/2006/xaml(特定功能--控制XAML编译器),这两个命名空间几乎包含WPF中所有命名空间。

    5、使用XmlnsDefinition特性将多个.NET命名空间合并到一个XAML命名空间:在AssemblyInfo.cs文件中

    [assembly:XmlnsDefinition("http://www.motyer.cn", "Moty.Utils")]

    [assembly:XmlnsDefinition("http://www.motyer.cn", "Moty.UI")]

    【扩展】xmlns:x表示的含义:

    xmlns:x和xmlns一样,是申明一个命名空间,区别在于xmlns申明特定属性的命名空间。比如下面的代码

    <Root xmlns="http://www.motyer.cn"

    xmlns:blog="http://www.motyer.cn/blog"

    Author="motyer"

    CreateTime="2016/12/30"

    blog:Count="256"

    blog:CreateTime="2016/12/30">

    ……………………

    </Root>

    在上面的代码里面,有2个属性前面都带有前缀blog,对于这类属性的命名空间就是由xmlns:blog指出的,而另外不带任何前缀的属性的命名空间是由xmlns指出的。

    6、如果要在XAML里面使用自定义的类和属性,那么必须要先按如下方式引入命名空间:xmlns:custom="clr-namespace:Moty.Utlis.Codec",并且在使用时需要在属性前面加上前缀custom。

    7、WPF开发采用代码分离(Code Behind)技术,一个WPF应用程序一般由2部分构成:XAML描述UI、C#处理逻辑。

    8、排版类元素可以包含多个子元素,内容控件只能包含一个子元素(如:Window)。

    9、相关属性表示方法:

    ==> 第一种方法(简洁、推荐)

    <DockPanel Background="Red">...</DockPanel>

    ==> 第二种方法

    <DockPanel>

    <DockPanel.Background>Red</DockPanel.Background>

    </DockPanel>

    10、2类标记扩展:

    ①WPF标记扩展(StaticResource、DynamicResource、Binding、RelativeSource、TemplateBinding);

    ②XAML标记扩展(x:Type、x:Static、x:null、x:Array)

    * x:Type:在XAML中取对象的类型,相当于C#里面的typeof;

    * x:null:将目标属性的值设为null;

    * x:Array:在XAML里面创建一个数组

    <x:ArrayExtension Type="{x:Type sys:Int32}"

    x:Key="myArray">

    <sys:Int32>1</sys:Int32>

    <sys:Int32>2</sys:Int32>

    <sys:Int32>3</sys:Int32>

    </x:ArrayExtension>

    * x:Static:把某个对象上的属性或域的值赋给目标对象的相关属性。

    11、XAML使用{}表示扩展,例如:

    <TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>

    该例使用了2个扩展,Binding、StaticResource,并且是嵌套扩展。

    (猜想:可能有一个Binding类,初始化的时候需要给定Source和Path两个属性的值。)

    12、自定义扩展:新建一个类,继承MarkupExtension类,重写ProvideValue方法。

    武汉蚂蹄软件服务中心主营软件项目外包,专注于提供中小型软件定制、网站建设、微信开发和APP开发等商务解决方案。联系QQ:773347113

  • 相关阅读:
    手把手带你画一个 时尚仪表盘 Android 自定义View
    新手自定义view练习实例之(二) 波浪view
    新手自定义view练习实例之(一) 泡泡弹窗
    增加辅助的数据库组件
    解决Plugin is too old,please update to a more recent version,or set ANDROID_DAILY_OVERRIDE..
    Android 自定义View -- 简约的折线图
    android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
    改善database schema
    题解报告:hdu 2057 A + B Again
    hdu 2087 剪花布条(KMP入门)
  • 原文地址:https://www.cnblogs.com/liujian619/p/start-wpf.html
Copyright © 2020-2023  润新知