2017年7月26日

深入浅出VC++动态链接库

摘要: DLL(Dynamic Linkable Library)可以简单的看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在 阅读全文

posted @ 2017-07-26 09:43 alex5211314 阅读(244) 评论(0) 推荐(0)

C#学习笔记(一)

摘要: 创建.NET应用程序的步骤: 1)使用某种.NET兼容语言编写应用程序代码 2)把代码编译为CIL,存储在程序集中 3)执行代码时,使用JIT编译器将代码编译为本机代码 4)在托管的CLR环境下运行本机代码,以及其他应用程序或进程 用字符串表示带路径的文件名,字符串中会带有大量的斜杠,例如:"c:\ 阅读全文

posted @ 2017-07-26 09:38 alex5211314 阅读(338) 评论(0) 推荐(0)

C#中的计时类

摘要: Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。 在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。 Stopwatch 实例或者在运行,或者已停止;使用 IsRunnin 阅读全文

posted @ 2017-07-26 09:37 alex5211314 阅读(779) 评论(0) 推荐(0)

获得系统特定目录的路径

摘要: 1 // 获得%APPDATA%路径 2 Console.WriteLine(System.Environment.GetEnvironmentVariable("appdata")); 3 4 // 取得各种系统固定路径 5 Type folder = typeof(Environment.SpecialFol... 阅读全文

posted @ 2017-07-26 09:36 alex5211314 阅读(174) 评论(0) 推荐(0)

WPF之资源

摘要: 每个WPF的界面元素都有一个名为Resources的属性,这个属性继承自FrameworkElement类,起类型为ResourceDictionary,ResourceDictionary能够以“key-value”对的形式存储资源,在保存资源时,ResourceDictionary认为资源对象的 阅读全文

posted @ 2017-07-26 09:24 alex5211314 阅读(289) 评论(0) 推荐(0)

WPF事件(一)内置路由事件

摘要: Windows是消息驱动的操作系统,运行其上的程序也遵照这个机制运行,随着面向对象开发平台日趋成熟,微软把消息机制封装成了更容易让人理解的事件模型,一个事件包含3个关键点:事件的拥有者、事件的响应者、事件的订阅关系 为了降低由事件订阅带来的耦合度和代码量,WPF推出了路由事件机制,路由事件与传统的直 阅读全文

posted @ 2017-07-26 09:23 alex5211314 阅读(180) 评论(0) 推荐(0)

WPF属性(二)附加属性

摘要: 附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上,也就是把对象放入一个特定环境后对象才具有的属性就称为附加属性,附加属性的作用就是将属性与数据类型解耦,让数据类型的设计更加灵活,举例,一个TextBox被放在不同的布局容器中时就会有不同的布局属性,这些属性就是由布局容器为Text 阅读全文

posted @ 2017-07-26 09:22 alex5211314 阅读(263) 评论(0) 推荐(0)

WPF属性(一)依赖属性

摘要: 依赖属性是一种可以自己没有值,并能通过使用Binding从数据源获得值的属性,拥有依赖属性的对象称为依赖对象,在传统开发中,一个对象所占用的内存在调用new操作符进行实例化的时候就已经决定了,而WPF允许对象在被创建的时候并不包含用于存储数据的空间,只保留在需要用到数据时能够获得默认值、借用其他对象 阅读全文

posted @ 2017-07-26 09:21 alex5211314 阅读(187) 评论(0) 推荐(0)

数据绑定(十一)多路绑定MultiBinding

摘要: 有时候UI要显示的信息又不止一个数据来源决定,就需要使用MultiBinding,MultiBinding具有一个名为Bindings的属性,其类型是Collection<BindingBase>,通过这个属性MultiBinding把一组Binding对象聚合起来,处在这个集合中的Binding对 阅读全文

posted @ 2017-07-26 09:20 alex5211314 阅读(272) 评论(0) 推荐(0)

数据绑定(十)Binding的数据转换

摘要: 当Source端Path所关联的数据与Target端目标属性数据类型不一致时,需要添加数据转换器,数据转换器是一个自定义的类,这个类需要实现IValueConverter接口,这个接口有两个方法需要实现:Convert和ConvertBack,当数据从Source流向Target时,将调用Conve 阅读全文

posted @ 2017-07-26 09:18 alex5211314 阅读(165) 评论(0) 推荐(0)

数据绑定(九)Binding的数据校验

摘要: Binding用ValidationRules属性来校验数据的有效性,ValidationRules属性类型是Collection<ValidationRule>,他可以设置多个数据校验条件,ValidationRule是抽象类,使用的时候需要创建它的派生类并实现它的Validate方法,Valid 阅读全文

posted @ 2017-07-26 09:16 alex5211314 阅读(155) 评论(0) 推荐(0)

数据绑定(八)使用Binding的RelativeSource

摘要: 当一个Binding有明确的数据来源时可以通过为Source或ElementName赋值的办法让Binding与之关联,有的时候由于不能确定Source的对象叫什么名字,但知道它与作为Binding目标的对象在UI布局上有相对关系,比如控件自己关联自己的某个数据、关联自己某级容器的数据,就要使用Bi 阅读全文

posted @ 2017-07-26 09:15 alex5211314 阅读(135) 评论(0) 推荐(0)

数据绑定(七)使用ObjectDataProvider对象作为Binding的Source

摘要: ObjectDataProvider就是把对象作为数据源提供给Binding,类似的还有XmlDataProvider,也就是把XML数据作为数据源提供给Binding,这两个类的父类都是DataSourceProvider抽象类 举例 有一个Calculator类,提供了一个Add方法 [csha 阅读全文

posted @ 2017-07-26 09:14 alex5211314 阅读(117) 评论(0) 推荐(0)

数据绑定(六)使用XML数据作为Binding的Source

摘要: .NET Framework提供了两套处理XML数据的类库 1. 符合DOM标准的类库:包括XmlDocument、XmlElement、XmlNode、XmlAttribute等类,这套类库的特定是中规中矩、功能强大,但也背负了太多XML的传统和复杂 2. 已LINQ为基础的类库:包括XDocum 阅读全文

posted @ 2017-07-26 09:13 alex5211314 阅读(200) 评论(0) 推荐(0)

数据绑定(五)使用集合对象作为列表控件的ItemsSource

摘要: ItemsSource属性可以接收一个IEnumerable接口派生类的实例作为自己的值,ItemsSource里存放的是一条一条的数据,列表式控件的条目容器会为这些数据传上外衣,只要为ItemsControl对象设置了ItemsSource属性值,ItemsControl对象就会自动迭代其中的数据 阅读全文

posted @ 2017-07-26 09:12 alex5211314 阅读(121) 评论(0) 推荐(0)

数据绑定(四)使用DataContext作为Binding的Source

摘要: DataContext属性被定义在FrameworkElement类里,这个类是WPF控件的基类,这意味着所有WPF控件都具备这个属性,当一个Binding只知道自己的Path而不知道自己的Source时,它会沿着UI元素树一路向输的根部找过去,没路过一个节点,就看看这个节点的DataContext 阅读全文

posted @ 2017-07-26 09:11 alex5211314 阅读(105) 评论(0) 推荐(0)

数据绑定(三)为Binding指定绑定源的几种方法

摘要: Binding的源是数据的来源,所以,只要一个对象包含数据并能通过属性把数据暴露出来,它就能当作Binding的源来使用,常用的办法有: 一。把普通CLR类型单个对象指定为Source 如果类型实现了INotifyPropertyChanged接口,则可通过在属性的set语句中激发PropertyC 阅读全文

posted @ 2017-07-26 09:10 alex5211314 阅读(143) 评论(0) 推荐(0)

数据绑定(二)把控件作为Binding源

摘要: 下面的代码把一个TextBox的Text属性关联在了Slider的Value属性上 [html] view plain copy <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winf 阅读全文

posted @ 2017-07-26 09:06 alex5211314 阅读(110) 评论(0) 推荐(0)

数据绑定(一)一个简单的例子

摘要: 控件是用来展示数据的,而不是用来存储数据的 如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源(Source)和目标(Target),数据从哪里来哪里就是源,Binding就是加载中间的桥梁,Binding目标就是数据要到哪儿去,一般情况下,Binding源是逻辑层的对象,Bi 阅读全文

posted @ 2017-07-26 09:05 alex5211314 阅读(120) 评论(0) 推荐(0)

布局篇-WrapPanel布局

摘要: WrapPanel内部采用流式布局,使用orientation属性控制流延伸方向,用HorizontalAlignment和VerticalAlignment两个属性控制内部控件的对齐,例子如下 [html] view plain copy <WrapPanel> <Button Width="50 阅读全文

posted @ 2017-07-26 08:59 alex5211314 阅读(147) 评论(0) 推荐(0)

布局篇-DockPanel布局

摘要: DockPanel内的元素会被附加上DockPanel.Dock这个属性,这个属性的数据类型为Dock枚举。Dock枚举可取Left、Top、Right和Bottom四个值,根据Dock的值,DockPanel内的元素会向指定方向累积、切分DockPanel内部剩余的空间,DockPanel的Las 阅读全文

posted @ 2017-07-26 08:58 alex5211314 阅读(120) 评论(0) 推荐(0)

布局篇-Canvas布局

摘要: 使用Canvas布局与在Windows Form窗体上布局基本上是一样的,当控件放置在Canvas里时附加上Canvas.X和Canvas.Y属性 示例代码: [html] view plain copy <Canvas> <TextBlock Text="用户名: " Canvas.Left="1 阅读全文

posted @ 2017-07-26 08:49 alex5211314 阅读(170) 评论(0) 推荐(0)

布局篇-StackPanel布局

摘要: StackPanel可以把内部元素在纵向或横向上紧凑排列,形成栈式布局 实例代码 [html] view plain copy <Grid> <GroupBox Header="请选择没有错别字的成语" BorderBrush="Black" Margin="5"> <StackPanel Marg 阅读全文

posted @ 2017-07-26 08:47 alex5211314 阅读(187) 评论(0) 推荐(0)

布局篇-Grid布局

摘要: 特点: 1)可以定义任意数量的行和列 2)行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式,可设置最大值和最小值 3)内部元素可以设置自己所在的行、列,还可以设置跨越几行、几列 4)可以设置内部元素的对齐方向 Grid类具有ColumnDefinitions和RowDefinitions两 阅读全文

posted @ 2017-07-26 08:46 alex5211314 阅读(178) 评论(0) 推荐(0)

控件篇

摘要: 日常使用最多的控件有6类: 1. 布局控件:可以容纳多个控件或嵌套其他布局控件,例如Grid、StackPanel、DockPanel等,有共同的父类Panel 2. 内容控件:只能容纳一个其他控件或布局控件作为它的内容,例如Window、Button等,有共同的父类ContentControl 3 阅读全文

posted @ 2017-07-26 08:44 alex5211314 阅读(173) 评论(0) 推荐(0)

x名称空间中的内容

摘要: x名称空间映射的是http://schemas.microsoft.com/winfx/2006/xaml,它包含的类均与XAML的解析有关,下面分三部分介绍 一:x名称空间的attribute 1. x:Class 告诉XAML编译器将XAML标签的编译结果输出到哪个类中 2. x:ClassMo 阅读全文

posted @ 2017-07-26 08:42 alex5211314 阅读(134) 评论(0) 推荐(0)

渐变画刷示例

摘要: 例子代码 1 <Rectangle> 2 <Rectangle.Fill> 3 <LinearGradientBrush> 4 <LinearGradientBrush.StartPoint> 5 <Point X="0" Y="0" /> 6 </LinearGradientBrush.Start 阅读全文

posted @ 2017-07-26 08:40 alex5211314 阅读(113) 评论(0) 推荐(0)

XAML的命名空间

摘要: 一个最简单的XAML例子 [html] view plain copy <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml 阅读全文

posted @ 2017-07-26 08:37 alex5211314 阅读(208) 评论(0) 推荐(0)

导航