社区
C#
帖子详情
求TreeView绑定任意路径的方法
cosmicking
2006-09-12 09:01:26
我想用TreeView来绑定任意路径,但不知道如何加载子节点,循环读出来的目录和文件都显示在根节点中。忘高手指点迷津!
...全文
318
10
打赏
收藏
求TreeView绑定任意路径的方法
我想用TreeView来绑定任意路径,但不知道如何加载子节点,循环读出来的目录和文件都显示在根节点中。忘高手指点迷津!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cosmicking
2006-09-13
打赏
举报
回复
解决啦,我在treeView的beforeExpand事件里写的,判断当前节点是否是目录,然后继续向下展开!
lovvver
2006-09-12
打赏
举报
回复
不会慢,关键看你的目录下的文件夹以及文件有多少,如果上万的话,那肯定会慢了,就是你手动在资源管理器中打开都会比较慢。
cosmicking
2006-09-12
打赏
举报
回复
用递归的话,程序运行起来会不会很慢啊?
cosmicking
2006-09-12
打赏
举报
回复
geoffe(),你用的2003还是2005。我怎么调不过去呢!有些属性我的2003里没有!
GXY2005
2006-09-12
打赏
举报
回复
递归算法
geoffe
2006-09-12
打赏
举报
回复
比如绑定我的电脑
那你用一个循环就可以了
根极点是硬盘,子节点是相应的文件夹
private void FillTree()
{
this.treeview1.Nodes.Clear();
TreeNode RootNode = new TreeNode(openDialog1.fileName)
TreeNode DriveNode;
string[] strDrivers = Environment.GetLogicalDrives();
foreach (string DriverName in strDrivers)
{
DriveNode = new TreeNode(DriverName);
DriveNode.Name = "" + DriverName;
DriveNode.Tag = false;
if (CheckISSubFolder(DriverName))
{
TreeNode tmpnode = new TreeNode("tmp");
DriveNode.Nodes.Add(tmpnode);
}
RootNode.Nodes.Add(DriveNode);
}
if (RootNode.Nodes.Count > 0)
RootNode.Expand();
this.sysTreeView.Nodes.Add(RootNode);
}
private bool CheckISSubFolder(string Path)
{
DirectoryInfo dir = new DirectoryInfo(Path);
if (!dir.Exists)
{
return false;
}
else
{
DirectoryInfo[] subDirs = dir.GetDirectories();
int i = 0;
foreach (DirectoryInfo subDir in subDirs)
{
if ((subDir.Attributes & FileAttributes.Hidden) != 0)
{
continue;
}
else
{
if (++i > 0)
return true;
}
}
return false;
}
}
private void GetSubDirectory(TreeNode ParentNode, string Path)
{
try
{
DirectoryInfo dir = new DirectoryInfo(Path);
DirectoryInfo[] subDirs = dir.GetDirectories();
TreeNode SubNode;
ParentNode.Nodes.RemoveAt(0);
foreach (DirectoryInfo subDir in subDirs)
{
if ((subDir.Attributes & FileAttributes.Hidden) != 0)
continue;
SubNode = new TreeNode(subDir.Name);
SubNode.Name = subDir.FullName;
SubNode.Tag = false;
if (CheckISSubFolder(subDir.FullName))
{
TreeNode tmpnode = new TreeNode("tmp");
SubNode.Nodes.Add(tmpnode);
}
ParentNode.ImageIndex = 1;
ParentNode.SelectedImageIndex = 0;
ParentNode.Nodes.Add(SubNode);
}
}
catch { }
}
cosmicking
2006-09-12
打赏
举报
回复
自己再顶一下!
cosmicking
2006-09-12
打赏
举报
回复
我会搜索所有文件,可不知道怎么把它按文件夹的路径加到treeView里,生成树状结构!
cosmicking
2006-09-12
打赏
举报
回复
我是在winform下用的,有没有简单点的,给我点算法的提示就行!
fds2003
2006-09-12
打赏
举报
回复
http://www.cnblogs.com/Bolik/archive/2006/09/11/501141.html
无限级树形菜单动态
绑定
树(sql2005数据库+vs)
sql2005+js动态
绑定
树。适合初学者入门学习使用。
ASP.net技术内幕
ASP的最新版本ASP.NET是Microsoft用于建立动态的数据库驱动网站的技术。内容包括:ASP.NET Web表单的使用,高级ASP.NET页面的开发,ADO.NET的使用,ASP.NET应用程序的使用, ASP.NET应用程序的保护,ASP.NET Web服务的建立,.NET框架的利用,自定义的ASP.NET控件的建立,ASP.NET的应用程序示例等。
本书内容丰富、图文并茂,适合于需要创建网站的专业程序员阅读。本书是关于使用ASP.NET建立网站的完整参考书,书中包含数百个代码示例,读者可以使用这些示例开始建立自己的网站
前言
第一部分 使用ASP.NET Web表单
第1章 建立ASP.NET页面
1.1 ASP.NET和.NET框架
1.1.1 .NET框架类库
1.1.2 理解名称空间
1.1.3 标准的ASP.NET名称空间
1.1.4 与.NET框架兼容的语言
1.2 ASP.NET控件简介
1.2.1 简单的ASP.NET页面
1.2.2 ASP.NET控件的优点
1.2.3 ASP.NET控件概述
1.3 向ASP.NET页面中添加应用逻辑
1.3.1 处理控件事件
1.3.2 处理页面事件
1.4 ASP.NET页面的结构
1.4.1 指令
1.4.2 代码声明块
1.4.3 ASP.NET控件
1.4.4 代码显示块
1.4.5 服务器端注释
1.4.6 服务器端包含指令
1.4.7 文本和HTML标记
1.5 小结
第2章 用Web服务器控件建立表单
2.1 建立智能表单
2.1.1 Label控件
2.1.2 TextBox控件
2.1.3 Button控件
2.1.4 RadioButton和RadioButtonList控件
2.1.5 CheckBox和CheckBoxList控件
2.1.6 DropDownList控件
2.1.7 ListBox控件
2.2 控制页面导航
2.2.1 将表单提交到另一个页面
2.2.2 使用Redirect( )
方法
2.2.3 使用HyperLink控件
2.3 在控件上进行格式化
2.3.1 基本Web控件属性
2.3.2 在Web控件上应用样式
2.4 小结
第3章 用检验控件执行表单的检验
3.1 使用客户端检验
3.1.1 配置客户端检验
3.1.2 启用和禁用客户端检验
3.2 必填域:RequiredFieldValidator控件
3.3 检验表达式:RegularExpressionValidator控件
3.3.1 检验电子邮件地址
3.3.2 检验用户名和口令
3.3.3 检验电话号码
3.3.4 检验网址
3.3.5 检验条目长度
3.3.6 检验邮政编码
3.4 比较值:CompareValidator控件
3.4.1 比较一个控件与另一个控件的值
3.4.2 比较一个控件的值与固定值
3.4.3 执行数据类型检查
3.5 检查值的范围:RangeValidator控件
3.6 错误汇总:ValidationSummary控件
3.7 执行自定义的检验:CustomValidator控件
3.8 禁用检验
3.9 小结
第4章 高级控件编程
4.1 使用视图状态
4.1.1 禁用视图状态
4.1.2 将值添加到视图状态
4.2 显示和隐藏内容
4.2.1 使用Visible和Enabled属性
4.2.2 使用Panel控件
4.2.3 模拟多页面表单
4.2.4 通过程序添加控件
4.2.5 将控件添加到页面
4.2.6 PlaceHolder控件
4.2.7 动态产生表单
4.2.8 动态产生列表条目
4.3 使用复杂控件
4.3.1 使用Calendar控件显示交互式的日历
4.3.2 使用AdRotator控件显示广告条
4.3.3 使用HTMLInputFile控件接受文件上传
4.4 小结
第二部分 高级ASP.NET页面开发
第5章 用用户控件创建自定义控件
5.1 用用户控件包含标准内容
5.2 显露用户控件中的属性和
方法
5.3 显露用户控件中的Web控件
5.4 显露用户控件中的事件
5.5 通过程序装载用户控件
5.6 小结
第6章 将代码与表示分离
6.1 创建业务组件
6.2 创建多层Web应用程序
6.3 使用code-behind
6.3.1 code-behind是如何工作的
6.3.2 编译code-behind文件
6.3.3 从一个code-behind文件派生多个页面
6.3.4 编译完整的ASP.NET页面
6.4 小结
第7章 用可移动控件为可移动设备服务
7.1 使用可移动设备软件模拟器
7.2 无线应用协议简介
7.3 建立WML页面
7.3.1 配置IIS
7.3.2 WML和XML
7.3.3 创建卡片集
7.3.4 用WML链接文件
7.4 使用ASP.NET可移动控件
7.4.1 创建可移动表单
7.4.2 动态激活可移动表单
7.4.3 显示文本
7.4.4 显示列表
7.4.5 创建文本框
7.4.6 检验用户输入
7.4.7 显示图像
7.4.8 进行电话呼叫
7.4.9 用可移动控件显示广告
7.4.10 使用可移动控件显示日历
7.5 创建跨设备兼容的可移动页面
7.5.1 探测设备功能
7.5.2 使用DeviceSpecific选择设备
7.5.3 使用表单模板集
7.6 小结
第8章 使用第三方控件
8.1 使用Microsoft Internet Explorer WebControls
8.1.1 使用
TreeView
控件
8.1.2 使用Toolbar控件
8.1.3 使用TabStrip控件
8.2 使用Superexpert控件
8.2.1 使用Content Rotator控件
8.2.2 使用SuperDataGrid控件
8.2.3 使用DataForm控件
8.3 小结
第三部分 使用ADO.NET
第9章 ADO.NET简介
9.1 ADO.NET概述
9.2 执行常见的数据库任务
9.2.1 打开数据库链接
9.2.2 从数据库表获取记录
9.2.3 在查询中使用参数
9.2.4 向数据库添加记录
9.2.5 更新数据库记录
9.2.6 删除数据库记录
9.3 改进数据库性能
9.3.1 使用SQL存储过程
9.3.2 获取返回值和输出参数
9.3.3 执行复杂的存储过程
9.3.4 用链接缓冲改进性能
9.4 高级的数据库主题
9.4.1 在事务中执行数据库命令
9.4.2 指定命令行为
9.4.3 获取表模式信息
9.5 小结
第10章 将数据
绑定
到Web控件
10.1 数据
绑定
概述
10.2 将服务器控件
绑定
到数据源
10.2.1
绑定
到Repeater控件
10.2.2 使用模板
10.2.3 视图状态和Repeater控件
10.2.4
绑定
到DropDownList控件
10.2.5
绑定
到RadioButtonList控件
10.2.6
绑定
到CheckBoxList控件
10.2.7
绑定
到ListBox控件
10.2.8
绑定
到其他控件
10.3 创建主/明细表单
10.3.1 创建单页面的主/明细表单
10.3.2 创建多页面的主/明细表单
10.4 小结
第11章 使用DataList和DataGrid控件
11.1 DataList和DataGrid控件概述
11.1.1 理解事件冒泡机制
11.1.2 使用模板
11.1.3 使用DataKeys集合
11.2 使用DataList控件
11.2.1 在DataList中显示数据
11.2.2 对DataList使用模板
11.2.3 对DataList使用样式
11.2.4 在DataList中创建多个列
11.2.5 捕获DataList控件中引发的事件
11.2.6 选择DataList中的条目
11.2.7 通过DataList控件使用DataKeys集合
11.2.8 用DataList控件创建主/明细表单
11.2.9 编辑DataList控件中的条目
11.3 使用DataGrid控件
11.3.1 在DataGrid控件中创建列
11.3.2 对DataGrid使用样式
11.3.3 对DataGrid控件中的列进行排序
11.3.4 对DataGrid中的记录进行分页
11.3.5 选择DataGrid控件中的行
11.3.6 编辑DataGrid控件中的条目
11.3.7 使用模板编辑DataGrid控件中的条目
11.4 小结
第12章 操作DataSet
12.1 理解DataSet
12.1.1 DataSet的元素
12.1.2 向DataSet添加DataTable
12.1.3 将控件
绑定
到DataSet
12.2 理解DataTable
12.2.1 通过程序创建DataTable
12.2.2 设置DataTable属性
12.2.3 在DataTable中设置列属性
12.2.4 在DataTable中计算列值
12.2.5 在DataTable之间定义关系
12.2.6 获取DataTable模式信息
12.2.7 在DataTable中更新记录
12.3 理解DataView
12.3.1 在DataView中对行进行过滤
12.3.2 在DataView中对行进行排序
12.3.3 在DataView中搜索行
12.4 通过ASP.NET页面使用DataSet
12.4.1 缓存DataSet
12.4.2 显示缓存的数据
12.4.3 过滤缓存的数据
12.4.4 在缓存的DataSet中搜索行
12.5 小结
第13章 操作XML
13.1 XML类概述
13.2 通过DataSet使用XML
13.2.1 将XML文档读入DataSet
13.2.2 通过ReadXml使用模式
13.2.3 从DataSet写XML文档
13.2.4 通过DataSet使用XMLData Documents
13.3 使用样式单转换XML
13.4 使用ASP.NET Xml控件
13.5 使用XslTransform类
13.6 使用强类型的DataSet
13.7 小结
第14章 使用ADO.NET创建搜索页面
14.1 使用SQL Server全文搜索
14.1.1 配置Full-Text Search Service
14.1.2 对数据库数据执行
任意
文本查询
14.1.3 对数据库数据执行布尔查询
14.1.4 上传二进制文档并且进行索引
14.2 使用Microsoft Indexing Service
14.2.1 配置Microsoft Indexing Service
14.2.2 将SQL Server配置为使用Microsoft Indexing Service
14.2.3 获取文档属性
14.2.4 对文件系统数据执行
任意
文本查询
14.2.5 对文件系统数据执行布尔查询
14.2.6 对文档属性执行查询
14.3 小结
第四部分 使用ASP.NET应用程序
第15章 创建ASP.NET应用程序
15.1 ASP.NET应用程序概述
15.2 使用应用程序状态
15.2.1 理解应用程序状态和同步
15.2.2 使用Global.asax文件
15.2.3 理解Context和使用Global.asax文件
15.2.4 处理应用程序Start和Init事件
15.2.5 处理Application_BeginRequest事件
15.3 使用Web.Config文件
15.3.1 研究配置部分
15.3.2 修改配置设置
15.3.3 设置配置位置
15.3.4 锁定配置设置
15.3.5 添加自定义的配置信息
15.4 使用HTTP处理器和模块
15.4.1 使用HTTP处理器
15.4.2 使用HTTP模块
15.4.3 创建WhosOn应用程序
15.5 小结
第16章 跟踪用户会话
16.1 使用浏览器cookie
16.1.1 cookie如何工作
16.1.2 创建和读取会话cookie
16.1.3 创建和读取持久性cookie
16.1.4 设置cookie属性
16.1.5 cookie的限制
16.2 使用会话状态
16.2.1 向会话状态中添加条目
16.2.2 从会话状态中删除条目
16.2.3 启动用户会话
16.2.4 结束用户会话
16.2.5 处理会话事件
16.2.6 在进程内存储会话状态
16.2.7 在Windows服务中存储会话状态
16.2.8 在数据库表中存储会话状态
16.2.9 禁止会话状态
16.3 使用无cookie会话
16.3.1 启用无cookie会话
16.3.2 无cookie会话的限制
16.4 小结
第17章 缓存ASP.NET应用程序
17.1 使用页面输出缓存
17.1.1 按参数改变缓存内容
17.1.2 按头改变缓存内容
17.1.3 按自定义的字符串改变缓存内容
17.1.4 设置缓存位置
17.1.5 使用HttpCachePolicy类
17.2 使用页面分段缓存
17.2.1 按参数改变页面分段缓存
17.2.2 页面分段缓存的限制
17.3 使用页面数据缓存
17.3.1 在缓存中添加条目
17.3.2 添加缓存文件依赖性
17.3.3 添加缓存触发器依赖性
17.3.4 添加缓存键依赖性
17.3.5 建立绝对的过期策略
17.3.6 建立变化的过期策略
17.3.7 设置缓存条目优先级
17.3.8 创建缓存回调
方法
17.4 小结
第18章 应用程序跟踪和错误处理
18.1 响应错误
18.1.1 查看错误信息
18.1.2 页面级错误处理
18.1.3 应用程序级错误处理
18.2 跟踪和监视应用程序
18.2.1 跟踪页面的执行
18.2.2 监视ASP.NET进程
18.2.3 获取进程信息
18.3 记录事件
18.4 使用调试器
18.4.1 连接调试器
18.4.2 建立断点
18.4.3 建立观察
18.4.4 逐步执行ASP.NET页面
18.5 小结
第五部分 保护ASP.NET应用程序
第19章 使用基于表单的身份验证
19.1 使用表单身份验证
19.1.1 启用表单身份验证
19.1.2 配置表单身份验证
19.1.3 配置表单授权
19.1.4 获取用户信息
19.1.5 创建注销页面
19.1.6 用Web.Config文件进行用户身份验证
19.1.7 用XML文件进行用户身份验证
19.1.8 用数据库表进行用户身份验证
19.1.9 实现基于角色的身份验证
19.1.10 创建自定义的身份验证票据
19.1.11 表单身份验证和Web阵
19.2 使用Passport身份验证
19.2.1 启用Passport身份验证
19.2.2 允许用户登录和注销
19.2.3 获取用户信息
19.3 小结
第20章 基于Windows的身份验证
20.1 使用基于Windows的身份验证
20.1.1 配置Internet Information Server安全
20.1.2 配置Microsoft Windows安全
20.1.3 配置Windows身份验证
20.1.4 配置Windows授权
20.1.5 配置自定义角色
20.1.6 获取用户信息
20.2 模拟用户账号
20.3 设置安全策略
20.4 小结
第21章 加密网上发送的数据
21.1 使用Secure Sockets Layer
21.1.1 加密
21.1.2 身份验证
21.1.3 数据完整性
21.1.4 SSL有多安全
21.2 将服务器配置为使用SSL
21.2.1 产生证书请
求
文件
21.2.2 申请服务器证书
21.2.3 安装服务器证书
21.3 在ASP.NET页面中使用SSL
21.4 使用.NET加密类
21.4.1 使用散列算法
21.4.2 使用对称加密算法
21.4.3 使用不对称加密
21.5 小结
第六部分 建立ASP.NET Web服务
第22章 创建XML Web服务
22.1 XML Web服务概述
22.1.1 XML Web服务促进通信
22.1.2 XML Web服务允许聚集
22.2 创建简单的XML Web服务
22.2.1 设置WebMethod属性
22.2.2 设置WebService属性
22.2.3 预编译XML Web服务
22.3 从浏览器测试XML Web服务
22.3.1 用HTTP-Get调用XML Web服务
22.3.2 用HTTP-Post调用XML Web服务
22.3.3 用SOAP调用XML Web服务
22.4 通过代理类访问XML Web服务
22.4.1 产生XML Web服务代理类
22.4.2 使用XML Web服务代理类
22.4.3 使用Web服务描述语言工具
22.4.4 设置代理类属性
22.5 在XML Web服务中传送复杂数据
22.5.1 XML Web服务和数组
22.5.2 XML Web服务和类
22.5.3 Web服务和DataSet
22.5.4 Web服务和二进制文件
22.6 XML Web服务和网站的交互
22.6.1 XML Web服务和应用程序状态
22.6.2 XML Web服务和会话状态
22.7 小结
第23章 高级的XML Web服务
23.1 使用WebService行为
23.1.1 WebService行为的限制
23.1.2 用WebService行为创建简单的页面
23.1.3 使用WebService行为回调函数
23.1.4 缓存WebService行为中的错误
23.1.5 使用WebService行为执行部分更新
23.1.6 使用WebService行为获取数据库数据
23.2 保护XML Web服务
23.2.1 安全的XML Web服务
23.2.2 创建数据库表
23.2.3 创建Login( )
方法
23.2.4 获取自定义的SOAP头
23.2.5 验证会话键
23.2.6 缓存会话键
23.2.7 建立安全的XML Web服务
23.2.8 访问安全的Web服务
23.3 使用HTML模式匹配
23.3.1 创建WSDL文档
23.3.2 指定正则表达式模式
23.3.3 创建简单的HTML模式匹配服务
23.3.4 在HTML模式匹配中使用输入参数
23.3.5 建立一个Six Degrees Web服务
23.4 小结
第七部分 利用.NET框架
第24章 操作集合和字符串
24.1 使用集合
24.1.1 使用ArrayList集合
24.1.2 使用HashTable集合
24.1.3 使用SortedList集合
24.2 使用字符串
24.2.1 对字符串进行格式化
24.2.2 使用String
方法
和属性
24.2.3 使用StringBuilder类
24.3 使用正则表达式
24.3.1 使用正则表达式类
24.3.2 研究正则表达式的元素
24.3.3 匹配单一字符
24.3.4 匹配特殊字符
24.3.5 匹配字符的替代序列
24.3.6 使用数量词进行匹配
24.3.7 正则表达式的超范围问题
24.3.8 捕获和反向引用
24.3.9 使用替换模式
24.3.10 设置正则表达式选项
24.4 小结
第25章 操作文件系统
25.1 使用文件和目录
25.1.1 创建和读取文本文件
25.1.2 创建和读取二进制文件
25.1.3 显示目录的内容
25.1.4 获取
路径
信息
25.2 使用串行化
25.2.1 使用二进制串行化
25.2.2 使用XML串行化
25.3 小结
第26章 发送电子邮件和访问网络
26.1 从ASP.NET页面发送电子邮件
26.1.1 Microsoft SMTP Service
26.1.2 发送简单的电子邮件
26.1.3 使用MailMessage类
26.1.4 向电子邮件消息添加附件
26.1.5 发送HTML电子邮件
26.2 使用Message Queuing
26.2.1 配置Microsoft Message Queuing
26.2.2 使用消息队列
26.2.3 向队列发送消息
26.2.4 从队列获取消息
26.2.5 显示消息体
26.2.6 发送和接收复杂的消息
26.3 使用HTTP协议访问其他网站
26.3.1 使用WebClient类
26.3.2 使用HttpWebRequest类
26.3.3 解析域名
26.4 小结
第27章 用GDI+动态创建图形
27.1 建立简单的图像
27.2 使用GDI+绘制对象
27.2.1 创建位图
27.2.2 使用Graphics对象
27.2.3 设置图形质量
27.2.4 使用颜色
27.2.5 使用画刷
27.2.6 使用画笔
27.2.7 绘制矩形
27.2.8 绘制直线
27.2.9 绘制椭圆
27.2.10 绘制曲线
27.3 绘制文本字符串
27.4 建立GDI+应用程序
27.4.1 创建ASP.NET绘图应用程序
27.4.2 创建简单的图表应用程序
27.5 小结
第八部分 建立自定义的ASP.NET控件
第28章 开发自定义的控件
28.1 创建简单的控件
28.2 使用HtmlTextWriter
28.3 向控件添加属性和
方法
28.3.1 使用属性访问函数
28.3.2 使用控件
方法
28.4 解析内部内容
28.5 向控件添加子控件
28.6 自定义控件和事件
28.7 参与postback
28.8 创建组合控件
28.9 派生现有的控件
28.10 访问当前上下文
28.11 调试控件
28.12 小结
第29章 高级控件开发
29.1 向控件添加模板
29.1.1 创建一个模板的多个实例
29.1.2 向一个控件添加多个模板
29.2 创建DataBound控件
29.2.1 实现不同的数据源
29.2.2 实现简单的DataBound控件
29.2.3 使用DataBound控件和模板
29.2.4 使用DataBound控件和状态
29.2.5 将自定义控件
绑定
到DataSet
29.3 使用自定义控件和Web服务
29.3.1 创建特色产品Web服务
29.3.2 创建特色产品自定义控件
29.3.3 显示特色产品控件
29.4 小结
第九部分 ASP.NET应用程序示例
第30章 创建职业介绍网站
30.1 安装职业介绍网站
30.2 创建主页
30.3 对用户进行身份验证
30.4 创建虚拟URL
30.5 列出和更新职位
30.6 创建职业介绍XML Web服务
30.7 小结
第31章 创建网上商店
31.1 ASP.NET Unleashed示例商店概述
31.2 安装ASP.NET Unleashed示例商店
31.3 建立导航系统
31.4 缓存产品数据
31.5 建立购物车
31.6 动态装载产品模板
31.6.1 使用LoadControl
方法
31.6.2 code-behind产品模板
31.7 小结
第十部分 附录
附录A 从ASP迁移到ASP.NET
附录B HTML控件参考
附录C Web控件参考
WPF_开发教程(_中文版).
目录 WPF基础入门 ........................................................................................................................................ 3 1. WPF基础之体系结构 ................................................................................................................... 3 2. WPF基础之 XAML.......................................................................................................................... 9 3. WPF基础之基元素 ..................................................................................................................... 23 4. WPF基础之属性系统 ................................................................................................................. 26 5. WPF基础之路由事件 ................................................................................................................. 34 6. WPF基础之布局系统 ................................................................................................................. 47 7. WPF基础之样式设置和模板化 ................................................................................................. 52 8. 详谈WPF开发中的数据虚拟化 ................................................................................................ 66 XAML语法 ........................................................................................................................................... 76 1. XAML 语法术语 .......................................................................................................................... 76 2. 代码隐藏和XAML ....................................................................................................................... 84 3. XAML 和自定义类 ....................................................................................................................... 85 4. 标记扩展和XAML ....................................................................................................................... 89 5. XAML 命名空间和命名空间映射 ............................................................................................... 92 6. WPF名称范围 ............................................................................................................................ 94 WPF控件开发 ...................................................................................................................................... 97 1. WPF控件开发之控件概述 ......................................................................................................... 97 2. 使用XAML 创建按钮 ................................................................................................................ 105 3. WPF控件库之BUTTON ................................................................................................................ 116 4. WPF控件库之MENU ................................................................................................................... 117 5. WPF控件库之LABLE ................................................................................................................. 122 6. WPF控件库之TOOLBAR .............................................................................................................. 123 7. WPF控件开发之自定义控件 ................................................................................................... 126 8. WPF控件开发之装饰器 ........................................................................................................... 143 WPF数据
绑定
.................................................................................................................................... 146 1. 数据
绑定
概述 ......................................................................................................................... 146 2. WPF数据
绑定
之
绑定
源 ........................................................................................................... 168 3. WPF数据
绑定
之数据模板 ....................................................................................................... 170 4. WPF数据
绑定
之
绑定
声明 ....................................................................................................... 185 5. 实例一:
绑定
到 ADO.NET 数据源 .......................................................................................... 189 6. 实例二:
绑定
到 LINQ 查询的结果 ........................................................................................ 190 WPF图形和多媒体开发 .................................................................................................................... 191 微软WPF应用 第 2 页 共 259 页 1. WPF 图形动画和媒体概述 ...................................................................................................... 191 2. WPF的图形呈现....................................................................................................................... 196 3. WPF的图像处理....................................................................................................................... 210 4. WPF的三维图形应用 ............................................................................................................... 224 5. WPF的三维变换应用 ............................................................................................................... 234 6. WPF的动画开发....................................................................................................................... 243 7. WPF的多媒体开发 ................................................................................................................... 255
一款非常好的WPF编程宝典2010 源代码
第1章 WPF概述 1 1.1 理解Windows图形 1 1.1.1 DirectX:新的图形引擎 1 1.1.2 硬件加速与WPF 2 1.2 WPF:高级API 4 1.2.1 分辨率无关性 5 1.2.2 WPF的演化 9 1.2.3 Windows窗体将继续保留 11 1.2.4 DirectX也将继续保留 12 1.2.5 Silverlight 12 1.3 WPF体系结构 13 1.4 结束语 17 第2章 XAML 19 2.1 理解XAML 20 2.1.1 WPF之前的图形用户界面 20 2.1.2 XAML变体 21 2.1.3 XAML编译 22 2.2 XAML基础 22 2.2.1 XAML名称空间 23 2.2.2 后台代码类 24 2.3 XAML中的属性和事件 26 2.3.1 简单属性与类型转换器 27 2.3.2 复杂属性 29 2.3.3 标记扩展 30 2.3.4 附加属性 31 2.3.5 嵌套元素 32 2.3.6 特殊字符与空白字符 35 2.3.7 事件 36 2.3.8 完整的Eight Ball示例程序 38 2.4 使用其他名称空间中的类型 38 2.5 加载和编译XAML 40 2.5.1 只使用代码 41 2.5.2 使用代码和未编译的XAML 43 2.5.3 使用代码和编译过的XAML 44 2.5.4 只使用XAML 46 2.6 结束语 47 第3章 Application类 48 3.1 应用程序的生命周期 48 3.1.1 创建Application对象 48 3.1.2 派生一个自定义的 Application类 49 3.1.3 应用程序的关闭方式 51 3.1.4 应用程序事件 51 3.2 Application类的任务 53 3.2.1 处理命令行参数 54 3.2.2 访问当前Application对象 55 3.2.3 在窗口之间进行交互 56 3.2.4 单实例应用程序 57 3.3 结束语 63 第4章 布局 64 4.1 理解WPF中的布局 64 4.1.1 WPF布局原则 65 4.1.2 布局过程 66 4.1.3 布局包容器 66 4.2 使用StackPanel面板 进行简单布局 68 4.2.1 布局属性 69 4.2.2 对齐方式 70 4.2.3 外边距 71 4.2.4 最小尺寸、最大尺寸以及 显式地设置尺寸 72 4.3 WrapPanel面板和DockPanel 面板 74 4.3.1 WrapPanel面板 74 4.3.2 DockPanel面板 75 4.3.3 嵌套布局包容器 77 4.4 Grid面板 78 4.4.1 调整行和列 80 4.4.2 跨越行和列 82 4.4.3 分割窗口 83 4.4.4 共享尺寸组 86 4.4.5 UniformGrid面板 88 4.5 使用Canvas面板进行 基于坐标的布局 89 4.5.1 Z顺序 90 4.5.2 lnkCanvas元素 91 4.6 布局示例 93 4.6.1 列设置 93 4.6.2 动态内容 94 4.6.3 组合式用户界面 96 4.7 结束语 97 第5章 内容 99 5.1 理解内容控件 99 5.1.1 Content属性 101 5.1.2 对齐内容 102 5.1.3 WPF内容原则 103 5.2 特殊包容器控件 104 5.2.1 ScrollViewer包容器控件 104 5.2.2 GroupBox和TabItem: 带标题的内容控件 107 5.2.3 Expander控件 109 5.3 装饰控件 112 5.3.1 Border控件 112 5.3.2 Viewbox控件 113 5.4 结束语 115 第6章 依赖项属性和路由事件 116 6.1 理解依赖项属性 116 6.1.1 定义和注册依赖项属性 117 6.1.2 WPF使用依赖项属性的方式 124 6.2 理解路由事件 126 6.2.1 定义和注册路由事件 126 6.2.2 关联事件处理程序 128 6.2.3 事件路由 129 6.3 WPF事件 137 6.3.1 生命周期事件 137 6.3.2 输入事件 139 6.3.3 键盘输入 140 6.3.4 鼠标输入 145 6.4 结束语 149 第7章 经典控件 151 7.1 控件类 151 7.1.1 背景画刷和前景画刷 151 7.1.2 字体 155 7.1.3 鼠标光标 159 7.2 内容控件 160 7.2.1 标签 160 7.2.2 按钮 161 7.2.3 工具提示 164 7.3 文本控件 170 7.3.1 多行文本 171 7.3.2 选择文本 172 7.3.3 TextBox控件的其他特征 172 7.3.4 PasswordBox控件 173 7.4 列表控件 174 7.4.1 ListBox控件 174 7.4.2 ComboBox控件 177 7.5 基于范围的控件 178 7.5.1 Slider控件 178 7.5.2 进度条 179 7.6 结束语 180 第8章 窗口 181 8.1 Window类 181 8.1.1 显示窗口 183 8.1.2 定位窗口 184 8.1.3 保存和恢复窗口位置 185 8.2 窗口交互 187 8.2.1 窗口所有权 188 8.2.2 对话框模型 189 8.2.3 通用对话框 190 8.3 非矩形窗口 191 8.3.1 简单形状窗口 191 8.3.2 具有形状内容的透明窗口 194 8.3.3 移动
任意
形状窗口 195 8.3.4 改变
任意
形状窗口的尺寸 196 8.4 Vista风格的窗口 197 8.4.1 使用Windows Vista玻璃效果 198 8.4.2 任务对话框和文件对话框 202 8.5 结束语 204 第9章 页面和导航 205 9.1 理解基于页面的导航 205 9.2 基于页面的用户界面 206 9.2.1 一个具有导航功能的基于 页面的简单应用程序 206 9.2.2 Page类 208 9.2.3 超链接 209 9.2.4 在一个框架中宿主页面 211 9.2.5 在另外一个页面中宿主页面 212 9.2.6 在Web浏览器中宿主页面 213 9.3 页面历史 214 9.3.1 深入分析WPF中的URI 214 9.3.2 导航历史 215 9.3.3 维护自定义的属性 216 9.4 导航服务 217 9.4.1 通过编程进行导航 217 9.4.2 导航事件 218 9.4.3 管理日志 219 9.4.4 向日志添加自定义项 221 9.4.5 页函数 225 9.5 XAML浏览器应用程序 227 9.5.1 XBAP应用程序的运行要
求
228 9.5.2 创建XBAP应用程序 229 9.5.3 部署XBAP应用程序 230 9.5.4 更新XBAP应用程序 231 9.5.5 XBAP应用程序的安全性 232 9.5.6 完全信任的XBAP应用程序 233 9.5.7 联合XBAP应用程序和 标准的单机应用程序 234 9.5.8 为不同的安全级别编写代码 234 9.5.9 在Web页面中嵌入XBAP 应用程序 239 9.6 结束语 240 第10章 命令 241 10.1 理解命令 241 10.2 WPF命令模型 243 10.2.1 ICommand接口 243 10.2.2 RoutedCommand类 244 10.2.3 RoutedUICommand类 245 10.2.4 命令库 245 10.3 执行命令 246 10.3.1 命令源 246 10.3.2 命令
绑定
247 10.3.3 使用多命令源 249 10.3.4 微调命令文本 250 10.3.5 直接调用命令 251 10.3.6 禁用命令 252 10.3.7 具有内置命令的控件 253 10.4 高级命令 255 10.4.1 自定义命令 255 10.4.2 在不同的位置使用 相同的命令 257 10.4.3 使用命令参数 259 10.4.4 跟踪和翻转命令 259 10.5 结束语 263 第11章 资源 264 11.1 程序集资源 264 11.1.1 添加资源 264 11.1.2 检索资源 266 11.1.3 pack URI 267 11.1.4 内容文件 268 11.2 本地化 269 11.2.1 构建本地化用户界面 269 11.2.2 使应用程序为本地化 做好准备 270 11.2.3 翻译过程 271 11.3 对象资源 276 11.3.1 资源集合 276 11.3.2 资源层次 277 11.3.3 静态资源和动态资源 279 11.3.4 非共享资源 280 11.3.5 通过代码访问资源 280 11.3.6 应用程序资源 281 11.3.7 系统资源 281 11.3.8 使用资源字典组织资源 283 11.3.9 在程序集之间共享资源 284 11.4 结束语 287 第12章 样式 288 12.1 样式基础 288 12.1.1 创建样式对象 291 12.1.2 设置属性 292 12.1.3 关联事件处理程序 293 12.1.4 多层样式 294 12.1.5 通过类型自动应用样式 296 12.2 触发器 297 12.2.1 简单触发器 297 12.2.2 事件触发器 299 12.3 结束语 301 第13章 形状、变换和画刷 302 13.1 理解形状 302 13.1.1 Shape类 303 13.1.2 矩形和椭圆 304 13.1.3 改变形状的尺寸和 放置形状 305 13.1.4 直线 309 13.1.5 折线 310 13.1.6 多边形 311 13.1.7 直线线帽和直线交点 313 13.1.8 点划线 314 13.1.9 像素对齐 315 13.2 变换 316 13.2.1 变换形状 317 13.2.2 变换元素 318 13.3 更好的画刷 319 13.3.1 LinearGradientBrush画刷 320 13.3.2 RadialGradientBrush画刷 322 13.3.3 ImageBrush画刷 323 13.3.4 平铺的ImageBrush画刷 325 13.3.5 VisualBrush画刷 327 13.3.6 透明掩码 328 13.4 位图效果 330 13.4.1 模糊效果 331 13.4.2 斜面边缘效果 331 13.4.3 浮雕边缘效果 332 13.4.4 光环和阴影 332 13.5 结束语 334 第14章 图形、图画和可视化对象 335 14.1
路径
和图形 335 14.1.1 直线、矩形和椭圆图形 336 14.1.2 使用GeometryGroup 组合形状 337 14.1.3 使用CombinedGeometry 融合图形 339 14.1.4 使用PathGeometry绘制曲线 和直线 341 14.1.5 微语言图形 345 14.1.6 使用图形进行剪裁 347 14.2 图画 348 14.2.1 显示图画 350 14.2.2 导出插图 352 14.3 可视化对象 353 14.3.1 绘制可视化对象 354 14.3.2 在元素中包装可视化对象 355 14.3.3 命中测试 358 14.3.4 复杂的命中测试 360 14.4 结束语 363 第15章 控件模板 364 15.1 理解逻辑树和可视化树 364 15.2 理解模板 369 15.2.1 修饰类 371 15.2.2 剖析控件 372 15.3 创建控件模板 375 15.3.1 简单按钮模板 375 15.3.2 模板
绑定
376 15.3.3 模板触发器 378 15.4 组织模板资源 380 15.4.1 分解按钮控件的模板 381 15.4.2 通过样式应用模板 383 15.4.3 自动应用模板 384 15.4.4 由用户选择的皮肤 385 15.5 构建更复杂的模板 387 15.5.1 多部分模板 387 15.5.2 ItemsControl控件中的 控件模板 388 15.5.3 修改滚动条 390 15.5.4 创建自定义窗口 394 15.5.5 SimpleStyle示例项目 398 15.6 结束语 400 第16章 数据
绑定
401 16.1 数据
绑定
基础 401 16.1.1
绑定
到元素的属性 401 16.1.2 使用代码创建
绑定
404 16.1.3 多
绑定
405 16.1.4
绑定
方向 408 16.1.5
绑定
更新 410 16.1.6
绑定
到非元素对象 411 16.2 使用自定义对象
绑定
到数据库 414 16.2.1 构建数据访问组件 414 16.2.2 构建数据对象 417 16.2.3 显示
绑定
对象 418 16.2.4 更新数据库 419 16.2.5 更改通知 420 16.3
绑定
到对象集合 422 16.3.1 显示和编辑集合元素 422 16.3.2 插入和移除集合元素 425 16.3.3
绑定
到ADO.NET对象 426 16.3.4
绑定
到LINQ表达式 428 16.4 数据转换 430 16.4.1 使用值转换器格式化 字符串 431 16.4.2 使用值转换器创建对象 434 16.4.3 应用条件格式化 436 16.4.4 评估多个属性 438 16.5 验证 439 16.5.1 在数据对象中进行验证 439 16.5.2 自定义验证规则 443 16.5.3 响应验证错误 445 16.5.4 获取异常列表 445 16.5.5 显示不同的错误指示符号 446 16.6 结束语 449 第17章 数据模板、数据视图 和数据提供者 451 17.1 数据
绑定
回顾 451 17.2 数据模板 452 17.2.1 分离和重用模板 454 17.2.2 更高级的模板 455 17.2.3 改变模板 457 17.2.4 模板选择器 458 17.2.5 模板与选择 462 17.2.6 样式选择器 466 17.2.7 改变元素布局 468 17.3 数据视图 469 17.3.1 检索视图对象 470 17.3.2 过滤集合 470 17.3.3 过滤DataTable对象 473 17.3.4 排序 474 17.3.5 分组 475 17.3.6 声明式地创建视图 478 17.3.7 视图导航 480 17.4 数据提供者 483 17.4.1 ObjectDataProvider 484 17.4.2 XmlDataProvider 486 17.5 结束语 488 第18章 列表、树、工具条和菜单 489 18.1 ItemsControl类 489 18.1.1 ComboBox控件 492 18.1.2 包含复选框或单选 按钮的ListBox控件 495 18.2 ListView控件 497 18.2.1 使用GirdView视图创建列 499 18.2.2 改变列的尺寸 500 18.2.3 单元格模板 500 18.2.4 创建自定义视图 503 18.3
TreeView
控件 510 18.3.1 使用数据
绑定
的
TreeView
控件 511 18.3.2 将DataSet对象
绑定
到树视图 514 18.3.3 即时节点创建 515 18.4 菜单 518 18.4.1 Menu类 518 18.4.2 菜单项 519 18.4.3 ContextMenu类 520 18.4.4 菜单分隔条 521 18.5 工具条和状态栏 522 18.5.1 ToolBar控件 522 18.5.2 StatusBar控件 525 18.6 结束语 526 第19章 文档 527 19.1 理解文档 527 19.2 流文档 528 19.2.1 流内容元素 529 19.2.2 格式化流内容元素 530 19.2.3 创建简单的流文档 532 19.2.4 块级别元素 533 19.2.5 内联级别元素 538 19.2.6 通过代码与元素进行交互 543 19.2.7 调整文本 547 19.3 只读流文档包容器 548 19.3.1 缩放 549 19.3.2 页面和列 549 19.3.3 从文件加载文档 552 19.3.4 打印 552 19.4 编辑流文档 553 19.4.1 加载文件 553 19.4.2 保存文件 555 19.4.3 格式化选择的文本 556 19.4.4 获取单个单词 558 19.5 固定文档 559 19.6 批注 561 19.6.1 批注类 562 19.6.2 启用批注服务 562 19.6.3 创建批注 563 19.6.4 检查批注 567 19.6.5 响应批注更改 569 19.6.6 在固定文档中保存批注 570 19.6.7 自定义便笺外观 571 19.7 结束语 572 第20章 打印 573 20.1 基本打印 573 20.1.1 打印元素 574 20.1.2 变换打印输出 576 20.1.3 打印不显示的元素 578 20.1.4 打印文档 579 20.1.5 在文档打印输出中 控制页面 582 20.2 自定义打印 584 20.2.1 使用可视化层中的类 进行打印 584 20.2.2 自定义多页打印 587 20.3 打印设置和管理 592 20.3.1 保存打印设置 592 20.3.2 打印页面范围 593 20.3.3 管理打印队列 593 20.4 通过XPS进行打印 596 20.4.1 为打印预览创建XPS文档 597 20.4.2 通过XPS直接打印 到打印机 598 20.4.3 异步打印 598 20.5 结束语 599 第21章 动画 600 21.1 理解WPF动画 600 21.1.1 基于时间的动画 600 21.1.2 基于属性的动画 601 21.2 基本动画 602 21.2.1 Animation类 602 21.2.2 使用代码创建动画 605 21.2.3 同时发生的动画 609 21.2.4 动画生命期 610 21.2.5 Timeline类 611 21.3 声明式动画和故事板 614 21.3.1 故事板 614 21.3.2 事件触发器 615 21.3.3 重叠动画 619 21.3.4 同时发生的动画 620 21.3.5 控制播放 620 21.3.6 监视动画进度 624 21.3.7 期望的帧速率 626 21.4 动画类型回顾 628 21.4.1 使用动画改变变换 629 21.4.2 使用动画改变画刷 633 21.4.3 关键帧动画 635 21.4.4 基于
路径
的动画 638 21.4.5 基于帧的动画 640 21.5 结束语 644 第22章 声音和视频 645 22.1 播放WAV音频 645 22.1.1 SoundPlayer类 646 22.1.2 SoundPlayerAction类 647 22.1.3 系统声音 648 22.2 MediaPlayer类 648 22.3 MediaElement类 650 22.3.1 使用代码播放音频 650 22.3.2 处理错误 651 22.3.3 使用触发器播放音频 652 22.3.4 播放多个声音 654 22.3.5 改变音量、平衡、速度 以及播放位置 655 22.3.6 将动画同步到音频 657 22.3.7 播放视频 658 22.3.8 视频效果 659 22.4 语音 661 22.4.1 语音合成 662 22.4.2 语音识别 663 22.5 结束语 665 第23章 3D绘图 666 23.1 3D绘图基础 666 23.1.1 视口 667 23.1.2 3D对象 667 23.1.3 摄像机 674 23.2 深入研究3D绘图 678 23.2.1 着色和法线 679 23.2.2 更加复杂的形状 682 23.2.3 Model3DGroup集合 683 23.2.4 使用材质 684 23.2.5 纹理映射 686 23.3 交互和动画 690 23.3.1 变换 690 23.3.2 旋转 691 23.3.3 飞过 692 23.3.4 跟踪球 694 23.3.5 命中测试 696 23.3.6 3D表面上的2D元素 700 23.4 结束语 702 第24章 自定义元素 704 24.1 理解WPF中的 自定义元素 705 24.2 构建基本的用户控件 707 24.2.1 定义依赖项属性 707 24.2.2 定义路由事件 710 24.2.3 添加标记 711 24.2.4 使用控件 713 24.2.5 命令支持 713 24.2.6 深入分析用户控件 716 24.3 无外观控件 717 24.3.1 修改颜色拾取器的代码 717 24.3.2 修改颜色拾取器的标记 718 24.3.3 流线化控件模板 720 24.3.4 特定主题样式和默认样式 722 24.4 扩展已有控件 724 24.4.1 理解掩码编辑控件 724 24.4.2 屏蔽语法 725 24.4.3 MaskedTextProvider类 726 24.4.4 实现一个WPF屏蔽文本框 726 24.4.5 改进MaskedTextBox控件 730 24.5 自定义面板 731 24.5.1 两步布局处理 732 24.5.2 Canvas面板克隆 734 24.5.3 更好的换行面板 735 24.6 自定义绘图元素 738 24.6.1 OnRender( )
方法
739 24.6.2 评估自定义绘图 740 24.6.3 自定义绘图元素 741 24.6.4 自定义装饰元素 743 24.7 结束语 744 第25章 与Windows窗体的互操作 745 25.1 访问互操作性 745 25.2 混合窗口和窗体 748 25.2.1 为WPF应用程序添加窗体 748 25.2.2 为Windows窗体应用程序 添加WPF窗口 748 25.2.3 显示模态窗口和窗体 749 25.2.4 显示非模态窗口和窗体 749 25.2.5 Windows窗体控件的 可视化风格 750 25.2.6 不需要互操作性的 Windows窗体类 750 25.3 创建具有混合内容的窗口 754 25.3.1 WPF和Windows 窗体"空域" 755 25.3.2 在WPF中宿主Windows 窗体控件 756 25.3.3 WPF和Windows窗体 用户控件 758 25.3.4 在Windows窗体中宿主 WPF控件 759 25.3.5 访问键、助记码和焦点 761 25.3.6 属性映射 762 25.4 结束语 764 第26章 多线程和插件 765 26.1 多线程 765 26.1.1 Dispatcher类 766 26.1.2 DispatcherObject类 766 26.1.3 BackgroundWorker类 769 26.2 应用程序插件 775 26.2.1 插件管线 776 26.2.2 使用插件的应用程序 780 26.2.3 与宿主交互 787 26.2.4 可视化插件 792 26.3 结束语 794 第27章 ClickOnce部署 795 27.1 应用程序部署 795 27.1.1 理解ClickOnce 796 27.1.2 ClickOnce安装模型 796 27.1.3 ClickOnce的局限 798 27.2 简单的ClickOnce发布 798 27.2.1 选择位置 799 27.2.2 部署文件 803 27.2.3 安装ClickOnce应用程序 803 27.2.4 更新ClickOnce应用程序 805 27.3 ClickOnce选项 805 27.3.1 发布版本 806 27.3.2 更新策略 807 27.3.3 发布选项 808 27.4 结束语 809
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章