<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MandyLover</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MandyLover]]></copyright><item><title><![CDATA[WPF处理Page页面关闭]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/72828474</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/72828474</guid><author>MandyLover</author><pubDate>Thu, 01 Jun 2017 18:44:52 +0800</pubDate><description><![CDATA[最近在处理一个功能：在page页面加载时导入已有配置，在page页面被关闭时也要相应更新修改过的配置。
初步解决方案，当然是响应此page的loaded事件和unloaded事件，如下：
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            string strXmlFi]]></description><category></category></item><item><title><![CDATA[WPF的数据绑定——修正类对象成员双向绑定的错误]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/70049436</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/70049436</guid><author>MandyLover</author><pubDate>Tue, 11 Apr 2017 11:39:13 +0800</pubDate><description><![CDATA[昨天本人写了一篇文章《WPF的数据绑定——MVVM模式下控件与类成员及类对象成员双向绑定》，地址为：http://blog.youkuaiyun.com/mandylover/article/details/69944513，经进一步调试，发现了一个bug，即改变类对象成员的值后无法更新控件的值。
验证代码是：
    public partial class Page1 : Page
    {]]></description><category></category></item><item><title><![CDATA[WPF的数据绑定——MVVM模式下控件与类成员及类对象成员双向绑定]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/69944513</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/69944513</guid><author>MandyLover</author><pubDate>Mon, 10 Apr 2017 11:48:12 +0800</pubDate><description><![CDATA[最近研究WPF，遇到并解决了一些难题（至少是初学者的入门难题），包括：
1）控件如何绑定数据？
2）控件与数据如何双向绑定？
3）控件如何绑定类成员变量？
4）控件如何绑定类对象的成员变量？
5）每次加载页面时，都会重新初始化，如何保持数据不变？
理论上的知识，就不一一详解了。这里写个小程序，解决上述提到的问题。
在创建新项目后，添加一个类TestViewMode，作为ViewMod]]></description><category></category></item><item><title><![CDATA[DevExpress控件基础应用——TreeListControl（2）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/69267232</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/69267232</guid><author>MandyLover</author><pubDate>Wed, 05 Apr 2017 19:19:26 +0800</pubDate><description><![CDATA[在上一篇文章，已介绍了如何绑定数据到TreeListControl控件的List部分。如果没有实现TreeListControl控件的Tree功能，这个控件就没有意义了。实现Tree功能，关键是处理好各个节点的父子关系，下面就介绍如何在TreeListControl控件的Tree部分设置各个节点的父子关系。
TreeListControl控件的TreeListView元素有两个属性，分别是Key]]></description><category></category></item><item><title><![CDATA[DevExpress控件基础应用——TreeListControl（1）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/69263614</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/69263614</guid><author>MandyLover</author><pubDate>Wed, 05 Apr 2017 17:34:41 +0800</pubDate><description><![CDATA[最近研究了在WPF应用程序运用第三方UI套件DevExpress，对能够将Tree型控件和List控件完美结合在一起的TreeListControl很感兴趣。网上关于如何使用TreeListControl控件的资料很少，害得我花费较长时间研究实践，才略知一二。写这篇文章，主要为解决下列问题：
1）如何绑定数据到TreeListControl控件的List部分？
2）如何在TreeListCon]]></description><category></category></item><item><title><![CDATA[WPF预览多个摄像头视频数据]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54666937</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54666937</guid><author>MandyLover</author><pubDate>Sun, 22 Jan 2017 10:29:51 +0800</pubDate><description><![CDATA[需求：
使用WPF开发应用程序来预览多个摄像头视频数据。


设计思路：
1）通过FFMPEG获取摄像头视频数据。
2）通过SDL来显示视频图像。


技术问题点：
SDL只能在窗体显示，要么弹出新窗体，要么在程序UI相关控件（比如PictureBox控件，也可以是其他Static类控件）显示。显然，获取一个视频设备弹出一个新窗体，不符合需求。那只能把SDL显示窗体嵌入到UI控]]></description><category></category></item><item><title><![CDATA[构建类似Office 2007框架的WPF应用程序（5）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54409093</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54409093</guid><author>MandyLover</author><pubDate>Fri, 13 Jan 2017 15:30:23 +0800</pubDate><description><![CDATA[九、Ribbon控件事件如何调用各个页面的函数
问题一：调用函数和被调用函数处在不同的类
Ribbon功能区的初衷就是方便用户操作每个功能，在程序设计时就需要处理Ribbon控件事件调用各个页面的函数。
Ribbon控件是MainWindow的一个控件，其控件事件当然是MainWindow类的一个函数。
同样，每个页面的功能由其类内函数实现。
问题二：切换显示页面时并没有直接创建各个页面]]></description><category></category></item><item><title><![CDATA[构建类似Office 2007框架的WPF应用程序（4）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54408187</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54408187</guid><author>MandyLover</author><pubDate>Fri, 13 Jan 2017 14:20:30 +0800</pubDate><description><![CDATA[八、设计主窗口
我觉得在构建软件前期必须充分考虑一个性能——可扩展性。
我们不仅要应付开发初期的需求，还要顾及到未来源源不断的需求，如果你的软件难以扩展，那痛苦会伴随整个开发周期。
很显然，一个窗口能摆放的功能点入口UI是有限的，我们必须将功能点分类，在不同窗口处理。这样，我们的主窗口的任务，就不是摆放各个功能点的直接入口UI，而是处理不同窗口的切换与显示。
在MFC和Win Form，我]]></description><category></category></item><item><title><![CDATA[构建类似Office 2007框架的WPF应用程序（3）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54405817</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54405817</guid><author>MandyLover</author><pubDate>Fri, 13 Jan 2017 09:46:42 +0800</pubDate><description><![CDATA[七、StatusBar控件的处理
我们先跳过主窗口的处理，先处理一下状态栏。先细枝末节，再恭迎主角。
首先，添加右下角的三角标志，这是可以鼠标拖动窗口，使之放大缩小的经典标志。当然，没有的话，也可以拖拽窗口，但总觉得少了点什么，没那么直观。改变窗口大小，是窗口的一个属性，不是StatusBar的属性，设置窗口属性ResizeMode为CanResizeWithGrip即可，如下：
Title]]></description><category></category></item><item><title><![CDATA[构建类似Office 2007框架的WPF应用程序（2）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54379520</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54379520</guid><author>MandyLover</author><pubDate>Thu, 12 Jan 2017 16:52:26 +0800</pubDate><description><![CDATA[五、设计Ribbon

由于之前有用过DevExpress的UI套件，对Ribbon不算陌生。但想使用微软的亲儿子，似乎没有那么便利。
先添加多个RibbonTab，并给各个RibbonTab增加一个Group和Button。代码如下：]]></description><category></category></item><item><title><![CDATA[构建类似Office 2007框架的WPF应用程序（1）]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54378771</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54378771</guid><author>MandyLover</author><pubDate>Thu, 12 Jan 2017 15:54:55 +0800</pubDate><description><![CDATA[近一个月，学习了WPF相关知识。在这里，我利用构建一个类似Office 2007框架的WPF应用程序，来总结学习WPF的个人体验。
一、需求
利用WPF，构建一个程序，框架类似Office 2007.如图：




二、关于Ribbon
这里就不对Ribbon功能区做详细介绍，网上可以搜索相关资料。
只想说明，在VS2012及以前的版本，没有内置Ribbon控件。需要到微软的Do]]></description><category></category></item><item><title><![CDATA[WPF学习笔记（2）——WPF理论学习]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54346136</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54346136</guid><author>MandyLover</author><pubDate>Wed, 11 Jan 2017 17:59:57 +0800</pubDate><description><![CDATA[对于新领域，我习惯还是先从理论知识入手。
还是买一些书来看吧，我觉得现在最便宜的性价比最高的商品就是书籍了。在一份快餐在15到20块的深圳，一百块钱都不到的书，值得购买。
我阅读了两本书，一是刘铁猛的《深入浅出WPF》，另一本是美国人Matthew MacDonald的《WPF编程宝典》。
刘书，共12章，注重细节，许多节点讲得很详细，比较符合入门，但部分功能点没有涉及到。
美国人的书，共]]></description><category></category></item><item><title><![CDATA[WPF学习笔记（1）——初识WPF]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/54345273</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/54345273</guid><author>MandyLover</author><pubDate>Wed, 11 Jan 2017 16:54:40 +0800</pubDate><description><![CDATA[最近才开始学习WPF。
作为混迹江湖多年的程序员，现在才开始学习WPF，有点对不住祖师爷。
当然，这不能全怪我，微软负有一定责任——假如WPF推行得红红火火，我至于到现在才开始学习吗？
也不是到最近才接触到WPF三个字，创建Win Form时都会出现WPF应用程序模板，但我一直以为WPF就是WindowsPhone Form，在Win Form中间插个Phone，专用于手机应用程序的……
]]></description><category></category></item><item><title><![CDATA[素质拓展之1到30看图猜数并排序]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/53611622</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/53611622</guid><author>MandyLover</author><pubDate>Tue, 13 Dec 2016 17:05:29 +0800</pubDate><description><![CDATA[上周公司组织素质拓展训练，其中有一项是看图猜数，看哪个队花的时间最少，大致细节如下：
1）  有30张图片，每张图片代表1到30之间的某个数。
2）  请将这30张图片识别出来，并按照1到30顺序排列好。
3）  共有6次机会，每次不得超过1分钟，以时间最短的那一次为最终成绩。
公司人数众多，共3个大队，每一队有5小队，每小队超过10人。我们那小队共14人。领到任务后，我们小队进行了讨论，]]></description><category></category></item><item><title><![CDATA[如何生成供VS2010调用的OpenCV3.0库文件]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/53488388</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/53488388</guid><author>MandyLover</author><pubDate>Tue, 06 Dec 2016 16:18:43 +0800</pubDate><description><![CDATA[OpenCV3.0版本不支持VS2010。
我们可以自己利用OpenCV3.0源码编译出支持VS2010的库文件。
方法是：需要通过CMake工具将OpenCV源码产生出供VS2010编译的构建文件，再编译出支持VS2010调用的库文件（.lib和.dll）。
步骤如下：
启动CMake（自己先下载CMake），选择好openCV源码路径和输出供VS2010编译的源码路径，如下：

]]></description><category></category></item><item><title><![CDATA[VS如何复制文件到指定路径]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/53484733</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/53484733</guid><author>MandyLover</author><pubDate>Tue, 06 Dec 2016 11:14:44 +0800</pubDate><description><![CDATA[在设计程序时，有很多情况采用的是UI与功能分离，功能部分打包成动态库，供主要处理UI的各个程序调用。
在VC程序，需要更新动态库的.lib文件和.h文件，每一次更改动态库都要手动复制一次。重复的动作，实在是一个程序员不能容忍的繁琐。
好在微软也知程序员的脾气，提供了可写脚本命令的地方。
实现步骤：选工程属性（工程右键点击Properties），选BuildEvent->Post-Build]]></description><category></category></item><item><title><![CDATA[忘了引用lib]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/53023288</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/53023288</guid><author>MandyLover</author><pubDate>Thu, 03 Nov 2016 17:05:27 +0800</pubDate><description><![CDATA[在封装一个调用SDL库的类，编译时出现如下错误：
1>SdlCite.obj : error LNK2019: unresolved external symbol _SDL_CreateThread referenced in function "public: int __thiscall CSdlCite::SC_Init(void)" (?SC_Init@CSdlCite@@QAEHXZ]]></description><category></category></item><item><title><![CDATA[error C2143: syntax error: missing ';' before '__stdcall']]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/52983937</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/52983937</guid><author>MandyLover</author><pubDate>Mon, 31 Oct 2016 17:04:30 +0800</pubDate><description><![CDATA[error C2143: syntax error: missing ';' before '__stdcall']]></description><category></category></item><item><title><![CDATA[FFMPEG新老接口问题的部分解决方案]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/52946083</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/52946083</guid><author>MandyLover</author><pubDate>Thu, 27 Oct 2016 15:21:56 +0800</pubDate><description><![CDATA[网上有许多ffmpeg的程序资料，由于ffmpeg更新太快，许多宏和函数都发生了变化。如果我们在旧程序引用ffmpeg新库文件，会产生一大堆错误；如果不引用新库，旧程序对应版本的库又难以找到。
error C4996: 'AVStream::codec': was declared deprecated
cannot convert from 'AVCodecParameters *' to 'AVCodecContext *']]></description><category></category></item><item><title><![CDATA[修改VS2015快捷键]]></title><link>https://blog.youkuaiyun.com/MandyLover/article/details/47860167</link><guid>https://blog.youkuaiyun.com/MandyLover/article/details/47860167</guid><author>MandyLover</author><pubDate>Sat, 22 Aug 2015 15:53:03 +0800</pubDate><description><![CDATA[用惯了VS2005和VS2010，许多操作都是用快捷键来执行。比如，“生成解决方案”用F7，对齐代码用Alt+F8。但VS2015已经默认了新的快捷键，使用起来不方便。
还好，回到从前是有办法的。如下：
工具->选项->环境->键盘 应用以下其他键盘映射方案 Visual C++ 6]]></description><category></category></item></channel></rss>