精华内容
下载资源
问答
  • wpf学习路线
    2021-11-16 14:49:31

        WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于。NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

    WPF中的常用布局

    1、Canvas布局
    Canvas是一个类似于坐标系的面板,所有的元素通过设置坐标来决定其在坐标系中的位置。具体表现为使用Left、Top、Right、 Bottom附加属性在Canvas中定位控件。

    2、StackPanel布局
    StackPanel将控件按照行或列来顺序排列,但不会换行。通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical),默认为竖排(Vertical)。

    3、DockPanel布局
    DockPanel支持让元素简单地停靠在整个面板的某一条边上,然后拉伸元素以填满全部宽度或高度。它也支持让一个元素填充其他已停靠元素没有占用的剩余空间。
    DockPanel有一个Dock附加属性,因此子元素用4个值来控制她们的停靠:Left、Top、Right、Bottom。Dock没有Fill值。作为替代,最后的子元素将加入一个DockPanel并填满所有剩余的空间,除非DockPanel的LastChildFill属性为false,它将朝某个方向停靠。

    4、WrapPanel布局
    WrapPanel布局面板将各个控件按照一定方向罗列,当长度或高度不够时自动调整进行换行换列。
    Orientation="Horizontal"时各控件从左至右罗列,当面板长度不够时,子控件就会自动换行,继续按照从左至右的顺序排列。
    Orientation="Vertical"时各控件从上至下罗列,当面板高度不够时,子控件就会自动换列,继续按照从上至下的顺序排列。

    5、Grid布局
    Grid允许我们通过自定义行列来进行布局,这类似于表格.通过定义Grid的RowDifinitions和ColumnDifinitions来实现对于表格行和列的定义,元素根据附加属性Grid.Row和Grid.Column确定自己的位置。
    1)Grid的列宽与行高可采用固定、自动、按比列三种方式定义
    第一种,固定长度——值为一个确定的数字
    第二种,自动长度——值为Auto,实际作用就是取实际控件所需的最小值
    第三种,比例长度——*表示占用剩余的全部宽度;两行都是*,将平分剩余宽度;一个2*,一个*,则前者占剩余全部宽度的2/3,后者占1/3;依此类推
    2) 合并行或列
    3)GridSplitter重新分布Grid控件的列间距或行间距。(类似于WinForm中SplitContainer)

    6、UniformGrid布局
    UniformGrid就是Grid的简化版,每个单元格的大小相同,不需要定义行列集合。每个单元格始终具有相同的大小,每个单元格只能容纳一个控件。
    若不设置RowsColums,则按照定义在其内部的元素个数,自动创建行列,并通常保持相同的行列数。若只设置Rows则固定行数,自动扩展列数。若只设置Colums则固定列数,自动扩展行数。
    UniformGrid 中没有Row和Column附加属性,也没有空白单元格。

    7、ScrollViewer布局
    ScrollViewer是带有滚动条的面板。在ScrollViewer中只能有一个子控件,若要显示多个子控件,需要将一个附加的 Panel控件放置在父 ScrollViewer中。然后可以将子控件放置在该控件中。
    HorizontalScrollBarVisibility水平滚动条是否显示默认为Hidden
    VerticalScrollBarVisibility垂直滚动条是否显示 默认为Visible。
    一般我们都会设置 HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
    意思是:当内容超出可视范围时,才显示横向/纵向滚动条

    8、ViewBox布局
    Viewbox的作用是拉伸或延展位于其中的组件,以填满可用空间。在Viewbox中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Viewbox中。然后可以将子控件放置在该控件中。
    常用属性:
    Stretch:获取或设置拉伸模式以决定该组件中的内容以怎样的形式填充该组件的已有空间。具体设置值如下:
    None:不进行拉伸,按子元素设置的长宽显示。
    Uniform:按原比例缩放子元素,使得一边不足,另一边恰好填充
    Fill:缩放子元素,使得子元素的长变为Viewbox的长,宽变为Viewbox的宽
    UniformToFill:按原比例缩放子元素,使得子元素一边恰好填充,另一边超出Viewbox的区域
    Stretch默认值为Uniform。

    9、Border
    Border 是一个装饰的控件,此控件用于绘制边框及背景,在Border中只能有一个子控件,若要显示多个子控件,需要将一个附加的Panel控件放置在父Border中。然后可以将子控件放置在该 Panel控件中。
    常用属性:
    Background: 背景色 ;
    BorderBrush: 边框色 ;
    BorderThickness: 边框宽度;
    CornerRadius: 各个角 圆的半径;

    WPF常用控件:

    1、WrapPanel布局控件:可以实现当空间不足时子控件自动往下一行布局,空间充足时又会自动调整行布局。常用布局控件还有StackPanel(设置其子元素是垂直排列还是水平排列)、Grid(通过定义行和列来绘制出一个表格)、Canvas(通过指定相对于其的坐标来指定子控件的位置)、DockPanel(设置其子元素如何停靠,DockPanel.Left、DockPanel.Right、DockPanel.Top、DockPanel.Bottom)。

    2、ScrollViewer:滚动条,当内容显示不完整时可以通过滚动条查看余下内容。

    3、ListBox:队列布局控件,可在其中添加队列内容,绑定数据,也可实现分页效果,也可添加其余控件。

    4、Label:文本显示控件,快速获取少量数据。

    5、Button:按钮控件,四种状态ClickMode:Hover:鼠标悬停在按钮上方引发单击事件;

                                           Press:当单击按钮时引发单击事件;

                                           Release:被按下然后松开时发生单击事件,默认为此。

    6、CheckBox:bool,选择按钮,默认不选择,通过IsChecked="True"使其默认选择,Indeterminate达到选择按钮模糊。

    7、RadioButton:与CheckBox类似,一般用于单选。

    8、TextBox:文本显示,与Lable类似,但Lable不可用户不可在界面编辑,TextBox默认用户可编辑,也可设置为只读。

    9、Password:密码显示框,输入字符后默认显示“*”。

    10、DatePicker:日期控件,选择日期。

    11、Calendar:日历控件,选择日期。

    12、Slider:滑块,Slider控件继承自RangeBase类型,同继承自RangeBase的控件还有ProgressBar和ScrollBar,这类控件都是在一定数值范围内表示一个值的用途。

    13、ToolBar:工具条,是一组通常在功能上相关的命令或控件的容器,在ToolBar中可添加button、textbox、image、comboBox等等控件。

    14、TreeViewStyle:树形控件,可在其中添加节点。

    15、DataGrid:数据表控件,表头数据类型有DataGridTextColumn、DataGridComboBoxColumn、DataGridCheckBoxColumn、DataGridHyperlinkColumn,其属性设置比较多,如SelectionUnit:包含Cell、FullRow 和CellOrRowHeader 三种单元选择模式。 Cell:选择单元格;FullRow:选择全行;CellOrRowHeader:可选择单元格,也可以通过点击行首选择全行。 

    16、Style:风格,可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件。

    WPF常用属性:

    精确定位的常用属性
    在设计UI时,WPF为我们提供了一些属性用于精确定位元素,其中最常用的有三个:Alignment(包括水平,垂直),Margin,Padding,具体用法如下:

    HorizontalAlignment: 子元素在水平方向的对齐方式,有左对齐,右对齐,中间对齐,拉伸填充等四种方式。

    VerticalAlignment:子元素在垂直方向的对齐方式,有顶端对齐,底部对齐,中间对齐,拉伸填充等四种方式。

    Margin:用于指定元素与其父级或同级之间的距离,包括上下左右四个值。也可通过使用 Margin="20"同时指定四个值。

    Padding:用于指定元素与其子级之间的距离,包括上下左右四个值。也可通过使用Padding="20"同时指定四个值。

    静态资源(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再访问这个资源了;动态资源(DynamicResource)使用指的是在程序运行过程中然会去访问资源。

    触发器的使用:


    使用触发器,可以动态地更改控件的外观,因为一些属性值改变了。例如,用户把鼠标移动到按钮上,按钮就会改变其外观。

    XAML有几个触发器。

    属性触发器:在属性值改变时激活。
    Trigger:根据某一个依赖属性的变化,用Setter更改某些样式,
      <Style TargetType="Button">
                 <Style.Triggers>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="FontSize" Value="28"></Setter>
                         <Setter Property="BorderBrush" Value="Red"></Setter>
                        <Setter Property="BorderThickness" Value="2"></Setter>
                    </Trigger>
                </Style.Triggers>
      </Style>
     当Button的IsPressed的Value为True时,会用Setter完成FontSize,BorderBrush和BorderThickness的设置。

    多触发器:基于多个属性值。
    MultiTrigger:只有多个依赖属性的的变化同时都满足时,触发器才会生效。
     <Style TargetType="Button">
                    <Style.Triggers>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="Background" Value="Black"></Condition>
                                <Condition Property="IsPressed" Value="True"></Condition>
                            </MultiTrigger.Conditions>
                            <MultiTrigger.Setters>
                                <Setter Property="FontSize" Value="28"></Setter>
                            </MultiTrigger.Setters>
                        </MultiTrigger>
                    </Style.Triggers>
     </Style>
    只有当Button的Background为Black并且IsPressed为True时,才会更改Button的Content的FontSize为28.

    数据触发器:在绑定的数据改变时激活。
    DataTrigger:可以完成Trigger的所有功能,也可以完成对非依赖属性的监听。DataTrigger一共引入了三个参数:Binding,Value和Setters。当需要设置数据触发器侦听的数据源时,通过绑定对Binding属性赋值的方式来完成。
    public class TestButton : Button {
            public int Index { set; get; }
        }

     <Style TargetType="local:TestButton">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Index}" Value="2">
                        <Setter Property="Foreground" Value="Red"/>
                    </DataTrigger>
                </Style.Triggers>
    </Style>
      TestButton 的Index属性是非依赖属性,用Trigger监听的时候,是会报错的。所以要用DataTrigger。

    多数据触发器:基于多个属性值。
     MultiDataTrigger:只有多个属性的的变化同时都满足时,触发器才会生效。 
    public class TestButton : Button {
            public int Index { set; get; }
            public string Text { set; get; }
        }

       <Style TargetType="local:TestButton">
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Index}" Value="2" />
                            <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="HI" />
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Background" Value="Red" />
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
     当Index=2,Text=“HI”同时成立时,设置Background为Red。

    事件触发器:在事件发生时激活。
    EventTrigger:事件被触发时完成一个动画。
    <Style TargetType="Button">
                       <Style.Triggers>
                          <EventTrigger RoutedEvent="Mouse.MouseEnter">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.5" Storyboard.TargetProperty="(Button.Width)"  To="200"></DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="Mouse.MouseLeave">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.5" Storyboard.TargetProperty="(Button.Width)" ></DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
    当MouseEnter事件被触发时,Button的Width会慢慢变为200,当MouseLeave事件被触发时,Button的Width慢慢恢复到最初的大小

    更多相关内容
  • WPF学习路线

    2017-11-16 09:58:00
    我一个非软件专业的写了半年winform程序,看到了winform的局限性,现在想学学WPF,但是不知道如何下手,WPF基本的概念,框架MVVM已经摸清,现在缺少一些代码实践,万恶的CSDN...另,大佬们说说WPF学习路线,不胜感激
  • WPF学习日记

    2020-12-17 21:08:16
    为了更好地做Revit的二次开发,特地来学习WPF的知识,学习依据是刘铁猛老师的《WPF深入浅出》一书,那么在这里把一些学习过程在这里做一个记录。 2. 正文 2.1 创建一个简单的的WPF项目 程序的主体中指定了主窗体...

    1. 前言

    为了更好地做Revit的二次开发,特地来学习下WPF的知识,学习依据是刘铁猛老师的《WPF深入浅出》一书,那么在这里把一些学习过程在这里做一个记录。

    1.1什么是WPF

    1.2wpf同别的UI设计模式的区别

    2. 正文

    2.1 创建一个简单的的WPF项目

    程序的主体中指定了主窗体是谁。

    StartupUri="MainWindow.xaml"
    

    2.2 简单认识下XAML

    将程序集引用进XAML,通C#中的using xxxxxx是一个意思。前面的小字母代表的是映射前缀,没有映射前缀的为默认映射空间。
    除了默认空间以外,其余来自映射空间中的对象前面要加映射前缀(以便让编译器了解是用的哪个映射空间里的类,不至于混淆)例如:

    将程序集引入XAML应该遵循以下写法:

    2.3 Attribute(属性)、property(属性)、event(事件)之间的关系

    Attribute和Property翻译过来都是属性的意思,但是Attribute是针对标签的,而property是针对对象的。当用XAML这种标签类语言进行面向对象编程是两者就会重叠,具体关系见下图。其中事件是作为XAML和C#代码之间的桥梁纽带,使程序外壳和程序内核相连接。

    2.4 通过static在XAML和cs之间来传递变量

    static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

    通过static使字符串在XAML和cs之间互相传递的写法,如下:

    2.5 使用pack URI来访问二进制资源

    在二进制资源已经被添加进程序之后,如何对其进行一个访问。
    例如:

    在XAML中:
    虽然提示未找到但是运行没问题呀,很神奇。

    //提示错误,找不到资源,但能够正常运行
    <Image Source="\icons\bomber.ico" Width="40" Height="40"/>
    //改成如下,就不会提示错误
    <Image Source="/icons/bomber.ico" Width="40" Height="40"/>
    

    在CS中:

    Bitmap bitmap = new Bitmap(@"\icons\bomber.ico");
    

    2.6 关于路径的问题

    2.7 选择对话框(OpenFileDialog)的使用

    
                //打开一个对话框,选取某种类型文件并获取其路径
                OpenFileDialog d = new OpenFileDialog();
    
                d.InitialDirectory = @"C:\Users\zyx\Desktop\"; //默认路径
                d.Filter = "dynamo文件(*.dyn)|*.dyn";//要选择的文件
                //d.Filter = "所有文件(*.*)|*.*";
    
                if (d.ShowDialog()== System.Windows.Forms.DialogResult.OK)
                {
                    this.fileName = d.FileName;
                }
    

    2.6 binding的一个标准的写法

    在该书中binding的写法非常的多样,在XAML中可以binding,在CS中也能binding,所以感觉就是非常的混乱,所以在这里把binding的一个写法在这里做一个规定。
    把数据设置给控件上一层的datacontext,binding有一个按树查询的一个规则,具体哪个属性的话在XAML中进行binding设置,让他按照树自己去找好了。

    下面这个是把slider的数值和text显示binding在一起(当然还有更简便的写法,但此处为了统一写法便于自己阅读和理解)。

            <StackPanel Name="SP">
                <TextBox Name="text" Text="{Binding Path=Value}"  />
                <Slider Name="slider" Maximum="100" Minimum="0"/>
            </StackPanel>
    
                Binding binding = new Binding() { Source = this.slider };
                this.SP.SetBinding(StackPanel.DataContextProperty, binding);
                //此处要么是DataContextProperty要么是ItemsSourceProperty暂时不是很明白他们两者的区别,之后可以详细看下
    

    注:如果不知道binding path 具体写啥的话,可以空着,把资源丢给他的上一层,他自己会去找的。

    展开全文
  • c# --WPF学习之路(一)

    千次阅读 2020-09-29 15:49:15
    一直都是用Winform做桌面应用程序开发,听说WPF用起来比winform开发简单,更加灵活,做出来的界面可以更加美观,所以试试看,一起学习起来~~~ 目录1.简单认识WPF项目组成2.XAML语言简单介绍3.简单看懂XAMLxmlns-特征...

    一直都是用Winform做桌面应用程序开发,听说WPF用起来比winform开发简单,更加灵活,做出来的界面可以更加美观,所以试试看,一起学习起来~~~

    1.简单认识WPF项目组成

    新建工程:
    在这里插入图片描述
    生成的项目由下几个部分组成:
    在这里插入图片描述
    App.xaml代码
    在这里插入图片描述
    MainWindow.xaml代码
    在这里插入图片描述
    由上面可以看出,基本界面由XAML语言组成。
    ps:我使用的版本是VS2019,其他版本可能有不同的地方,但大致理解和使用一致。

    2.XAML语言简单介绍

    原来UI设计师和程序猿的方式:
    程序猿根据客户需求,作出简单的界面,然后开始编写功能逻辑代码。UI设计师根据已有界面及需求等,设计出漂亮的界面,最后由程序猿根据设计图来实现界面效果。
    但Winform做界面,往往最后的结果是不尽人意的,很难达到设计师要的效果,第一是绘制界面的局限性,还有为实现效果耗费的时间精力较大。
    XAML语言是XML的衍生版,大体看起来和XML类似。
    XAML语言的产生就可以实现UI设计师用Blend设计UI后,以XAML的形式直接保存,无需转换则可直接在VS中编译,程序猿则只需要开发后台逻辑代码。简单来说,XAML是WPF技术中用于设计UI的语言。
    优点:
    1.突破原本UI和逻辑代码的耦合性强,实现UI和逻辑分离。
    2.可以设计出专业的UI,不需要编程语言,无需转换。

    3.简单看懂XAML

    xmlns-特征的语法格式

    类似于winform的using System;,需要添加引用来使用某些类。
    格式:

    xmlns[:可选的映射前缀]="命名空间"
    

    可以不写可选的映射前缀,意味着成为“默认命名空间”,但是默认命名空间只能有一个,尽量选择使用最多的命名空间来充当。
    例子如下:
    在这里插入图片描述
    将带有下划线的xmlns,加上system:,改为非默认命名空间,则带来的改变如下:
    在这里插入图片描述
    至于引用对用c#的哪些命名空间,可以自行搜索。

    x:Class

    例如:
    在这里插入图片描述
    这里表示:我们XAML窗体界面对应的C#类

    4.窗体属性

    在这里插入图片描述
    整个界面配置,可以直接摸索,和winform一样,可以使用简单的添加控件及修改属性

    展开全文
  • 学习WinForm技术之后,又了解到了WPF界面开发技术。相比WinForm的事件驱动理念,WPF带来了更加先进的数据驱动理念,使得数据可以主动更新界面,而不是被界面事件更新。此外,WPF作为一项新的表示层开发技术,界面...

    简介

    在学习WinForm技术之后,又了解到了WPF界面开发技术。相比WinForm的事件驱动理念,WPF带来了更加先进的数据驱动理念,使得数据可以主动更新界面,而不是被界面事件更新。此外,WPF作为一项新的表示层开发技术,界面主要使用XAML语言描述,在进行界面设计时可以做到更加便捷、高效。模板与样式的加入,让控件的自定义变得更加简单,更容易实现出期望的效果。

    在自学WPF的过程中,主要参考了以下资料:
    深入浅出WPF
    《深入浅出WPF》刘铁猛 著

    WPF编程宝典
    《WPF编程宝典》Matthew MacDonald 著 王德才 译

    微软文档 Windows Presentation Foundation - .NET Framework

    微软 .NET Framework 源码

    入门阶段特别推荐深入浅出WPF,其突出了WPF使用的重点内容,对技术点的来龙去脉有详细清晰的介绍,还有各种示例,非常容易理解。

    内容

    自己入门WPF是使用的深入浅出WPF一书,所以这份笔记也主要是按照这本书的脉络归纳的。

    笔记以11个大主题归纳了“WPF基本概念”、“XAML基本语法”、“控件与布局”、“Binding”、“依赖属性与附加属性”、“路由事件与附加事件”、“命令”、“资源”、“模板与样式”、“2D绘图与动画”、“3D绘图”等内容。如下图:
    思维导图笔记主题

    各大主题展开后均有详细的归纳总结,如3D绘图主题:
    3D绘图的部分归纳内容

    3D绘图中提供有几份示例代码,可以运行看效果(有动画,效果还不错哦):
    3D命中测试示例图
    3D动画示例1
    3D动画示例2

    此外,思维导图其他的许多小主题也具有注释,里面有主题相关详细说明或示例代码(用MindMaster软件打开思维导图后,鼠标悬停或点击注释图标就可以看到):
    小主题注释中的示例代码

    如果想要运行示例代码,在Visual Studio中新建一个名为“WpfApp1”的WPF应用(.NET Framework)类型的项目,再把示例代码粘贴进去就可以了(有的示例可能要根据自己本地的环境微调一下):
    Visual Studio项目类型
    项目名称

    思维导图的内容、干货比较多,下面截图出来预览一下:
    图1
    图2
    图3
    图4
    图5
    图6

    文件下载

    笔记的思维导图文件已经上传到亿图MindMaster思维导图模板社区了,如果大家需要获取文件,可以进入如下链接点击“立即使用”获取。获取后使用MindMaster软件打开,可以更加详细地阅读笔记内容:

    文件链接(亿图MindMaster思维导图社区):
    https://mm.edrawsoft.cn/template/171665

    展开全文
  • C#和WPF没有什么多大的关系,WPF是一个框架,VB都可以写WPF,至于如何学习C#,还是老样子!基础:基础语法基础API基础练习所谓基础语法,包括if /if else ,swicth,while,操作符,数值基础API,包括文件流 Thread...
  • NULL 博文链接:https://x-dome.iteye.com/blog/687308
  • WPF 学习资料收集 学习路径

    千次阅读 2016-05-13 13:46:21
    以下资料文章收集自网络: ...WPF学习资源整理: 刘铁猛 + MSDN杂志 猎豹网校的wpf视频 传智播客的wpf视频 youtube: 听说资料很多。 What is WPF? : http://www.wpf-tutorial.com/about-wpf/
  • WPF学习之旅

    2019-10-01 18:56:29
    WPF学习路线如下: WPF 学习路线 页面布局 依赖属性 绑定 路由事件 视觉书和逻辑树 自定义控件和用户控件 转换器 数据筛选 动画 9.采用MVVM框架开发 学习路线分为三种...
  • 【.NET学习】.NET入门及学习路线

    千次阅读 多人点赞 2020-06-28 18:23:02
    学习路线 课程安排 【前言】.NET是什么? .NET is a free, cross-platform, open source developer platform for building many different types of applications. With .NET, you can use multiple languages,...
  • 初次学习WPF小白攻略

    2022-08-12 10:51:51
    初次学习WPF小白攻略(适合新手)
  • WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时...
  • WPF学习

    万次阅读 多人点赞 2019-03-05 22:00:17
    首先感谢刘铁锰先生的《深入浅出WPF》,学习WPF过程碰上很多新概念,如Data Binding、路由事件,命令、各种模板等。 WPF:编写CS端的UI技术。 怎么去掉WPF窗体靠上多出黑色的长条?在vs界面的菜单栏点击调试-选项...
  • WPF学习感受

    千次阅读 2017-05-29 10:25:06
    WPF是微软推出的一个先进的界面类库,具有高度的可定制性,吸收了很多html的思想,打破了传统的假面编程思路,很有创造力。 尤其是当WPF采用了XAML作为界面...但是,学习了这么久的WPF,给我的一个感触就是:垃圾。
  •  正如在“【WPF学习】第四十三章 路径和几何图形”学过的,PathGeometry对象描述可包含直线、弧线以及曲线的图形。下图显示的示例具有一个PathGeometry对象,该对象包含两条弧线以及一条将最后定义的点连接到起点的...
  • 葵花宝典WPF自学手册

    2018-04-05 10:53:13
    这本书对于WPF核心技术的原理、概念、技术、技巧与开发实践的讲述,是基于一位完全不懂WPF的菜鸟学习经历的,非常符合国内程序员WPF技术的初学路线,如果您想学习Microsoft WPF技术的话,那么这本书将是您的不二...
  • WPF基础知识

    千次阅读 2022-03-03 20:44:06
    此文主要介绍WPF的基础知识,文章会直接摘抄一些优秀文章的表达以及示例用于说明,如果侵犯了作者权利,请联系我速删。编写文章的目的在于记录与分享,方便后续重温与掌握。文章中可能会存在一些小问题,还望各位看...
  • 什么是XAML? 官方语言: XAML是eXtensible Application Markup Language的...XAML定义了WPF应用中的按钮及各种控件的布局。 具体长什么样呢?如下图 然后我们了解一下XAML基础 XAML文档中的每个元素都映射为....
  • 当2006年微软首次推出Windows Presentation Foundation(WPF)时,它代表了应用程序的设计和开发又向前跨出了巨大的一步。它简化了GUI应用程序的开发,有助于UI和业务逻辑的分离,并且提供了统一的编程模型、语言和...
  • WPF自学手册-葵花宝典

    2019-03-25 15:46:08
    这本书对于WPF核心技术的原理、概念、技术、技巧与开发实践的讲述,是基于一位完全不懂WPF的菜鸟学习经历的,非常符合国内程序员WPF技术的初学路线,如果您想学习Microsoft WPF技术的话,那么这本书将是您的不二选择
  • WPF MVVM学习

    2019-10-07 01:23:03
    从我们还是儿童到学习成长为成年人,生命一直都在演变。 对于软件架构, 同样适用这个道理, 从一个基础的架构开始, 随着每个需求和情境在不断演化。 如果你问任何一个 .NET 开发者, 什么是最小的基础架构, ...
  • wpf初学者教程

    2013-01-13 15:53:14
    PDF高清格式的Wpf入门白皮书,提供了深入“WPF/E”的高层次概述,并介绍了“WPF/E”与下一代 Web 应用程序开发堆栈中其他组件的协作情况。
  • WPF动画详解

    2022-09-08 10:18:41
    WPF规定,可以用来制作动画的属性必须是依赖属性。简单的动画由一个元素来完成就可以了,就像一个演员的独角戏,WPF吧简单动画称为AnimationTimeline。复杂的动画就需要UI上的多个元素协同完成,就像电影中的一段...
  • WPF从零到1教程详解,适合新手上路

    千次阅读 多人点赞 2022-06-12 17:40:02
    WPF 的核心是一个与分辨率无关且基于矢量的呈现引擎,本文旨在教会大家对象继承、公共属性、事件的使用,以及了解数据绑定、样式编写、路由命令等等
  • wpf学习---Command

    2019-07-31 18:17:56
    cmmand:自定义命令 -理解成自己定义的一个事件,绑定到控件上,每次点击控件会顺着RoutedCommand的行走的路线去执行操作。 接下来写.cs代码: RoutedCommand跑腿作用,连接前面 定义命令操作 然后不要忘了把命令...
  • 深入浅出WPF(1)——什么是WPF

    万次阅读 热门讨论 2008-05-15 19:06:00
    深入浅出WPF(1)——什么是WPF 小序: Hi,大家好!几乎两个月没有写技术文章了。...第二,WPF学习比较讲求路径,如果没有一个比较好的路径,学习起来可能比较慢,主要原因是它像是一种ASP.NET与Windows Forms
  • WPF学习之绘图和动画

    2017-10-23 19:55:34
    有一点需要特别注意,初学者认为绘图一定要在Canvas中完成(谁叫它的名字叫画布呢),其实不然,绘图可以在任何一种布局控件中完成,WPF会自动根据容器的不同计算图形的坐标,日常生活中,常用的绘图容器有Canvas和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,589
精华内容 635
关键字:

wpf学习路线