<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_咖喱块</title><subtitle type="text">记录是为了更好的忘却</subtitle><id>http://feed.cnblogs.com/blog/u/36766/rss</id><updated>2011-03-10T16:22:14Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/36766/rss"/><entry><id>http://www.cnblogs.com/Curry/archive/2011/03/11/BamlViewer.html</id><title type="text">BamlViewer修改</title><summary type="text">在读Microsoft Live Labs Pivot 中exe的时候，发现他的generic.baml读不了，于是到http://reflectoraddins.codeplex.com/wikipage?title=BamlViewer中下载了源码修改。其实源码中还有两处遗漏的，没有修补，因为没法找到对应的XAML，也不知道修复的对不对，所以就未修复。另外还调整了XAML输出的格式。因为感觉老的界面挺难看，所以参考了http://stylesexplorer.codeplex.com/的代码进行了修改，发现他用的是SharpDevelop中TextEditor控件，控件虽好，但那个是2.2</summary><published>2011-03-10T16:21:00Z</published><updated>2011-03-10T16:21:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2011/03/11/BamlViewer.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2011/03/11/BamlViewer.html"/><content type="html">&lt;p&gt;在读Microsoft Live Labs Pivot 中exe的时候，发现他的generic.baml读不了，于是到&lt;a href="http://reflectoraddins.codeplex.com/wikipage?title=BamlViewer"&gt;http://reflectoraddins.codeplex.com/wikipage?title=BamlViewer&lt;/a&gt;中下载了源码修改。&lt;/p&gt;&lt;p&gt;其实源码中还有两处遗漏的，没有修补，因为没法找到对应的XAML，也不知道修复的对不对，所以就未修复。另外还调整了XAML输出的格式。&lt;/p&gt;&lt;p&gt;因为感觉老的界面挺难看，所以参考了&lt;a href="http://stylesexplorer.codeplex.com/"&gt;http://stylesexplorer.codeplex.com/&lt;/a&gt;的代码进行了修改，发现他用的是&lt;a href="http://www.sharpdevelop.net/opensource/sd/"&gt;SharpDevelop&lt;/a&gt;中TextEditor控件，控件虽好，但那个是2.2版本的里面的代码确实不太好看和4.0的比较起来。颜色也比较难改，只好修改了源文件。&lt;/p&gt;&lt;p&gt;经过一个下午的阅读终于搞懂了TextEditor控件的原理，就是解析每个字符，然后参照XML给的规格绘色，4.0看了下代码比之前好很多，但不知道原理有没改变。因为这个原因所以多了ICSharpCode.TextEditor.dll，它要和Reflector.BamlViewer.dll放在同一目录下。我同时给出源文件和需要安装的文件。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可惜查找高亮显示没有做，以后有时间一定补上。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/Curry/201103/201103110021041207.png"&gt;&lt;img height="632" width="1159" src="http://images.cnblogs.com/cnblogs_com/Curry/201103/201103110021053583.png" alt="image" border="0" title="image" style="display: inline; border: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/Curry/BamlViewer(Source).rar"&gt;源文件下载&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://files.cnblogs.com/Curry/BamlViewer(Curry).rar"&gt;DLL下载&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Curry/aggbug/1980338.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Curry/archive/2011/03/11/BamlViewer.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2010/12/22/WPFLiquid.html</id><title type="text">生活就是这么狗血——WPF粒子小记</title><summary type="text">今天看到了一篇博客，不应该说昨天，作者用了HTML5去实现，老实说本来不想凑热闹，可看了有位兄弟sandcu用SL实现了遍，不过感觉速度并不理想，想来这种粒子效果自己还未用WPF实现过，顺便看看WPF到底性能如何，随着手痒了下面的悲剧也发生了。 1.因为闲的慌，我看了Flash的效果比较好，于是直接拿了Flash的代码来改，结果浪费了N多时间在上面，Flash的Random是从0到1的小数C#里的是整数的，开始效果就是达不，到后来报错才知道，郁闷了半天。 2. 我是用WriteableBitmap这个类来实现坐标点颜色的写入，可老是说我数组越界，弄了半天才知道是row和colum和x,y坐标的</summary><published>2010-12-21T18:56:00Z</published><updated>2010-12-21T18:56:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2010/12/22/WPFLiquid.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2010/12/22/WPFLiquid.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 今天看到了一篇&lt;a href="http://www.cnblogs.com/hongru/archive/2010/12/21/1912820.html"&gt;博客&lt;/a&gt;，不应该说昨天，作者用了HTML5去实现，老实说本来不想凑热闹，可看了有位兄弟&lt;a href="http://www.cnblogs.com/sandcu/archive/2010/12/21/1913039.html"&gt;sandcu&lt;/a&gt;用SL实现了遍，不过感觉速度并不理想，想来这种粒子效果自己还未用WPF实现过，顺便看看WPF到底性能如何，随着手痒了下面的悲剧也发生了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.因为闲的慌，我看了Flash的效果比较好，于是直接拿了Flash的代码来改，结果浪费了N多时间在上面，Flash的Random是从0到1的小数C#里的是整数的，开始效果就是达不，到后来报错才知道，郁闷了半天。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. 我是用WriteableBitmap这个类来实现坐标点颜色的写入，可老是说我数组越界，弄了半天才知道是row和colum和x,y坐标的关系弄错了，应该是row = y,x = colum.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.想FPS检测更准确，于是把&lt;a href="http://blogs.msdn.com/jgoldb/archive/2008/09/26/etw-event-tracing-in-wpf.aspx"&gt;ETW Event Tracing in WPF&lt;/a&gt;中的东西直接抄过来，结果发现他在UAC状态下一定要管理员启动不说，在我的项目里面还不能用，只能自己山寨。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.花我最长时间最后也没搞定的，我图像的背景不得不是黑色的，为什么？因为我不知道怎么换成其他的，就算是我把背景画了一遍可还是有黑色东西来干扰（见图一），似乎没有clear(color)类似这样基本的函数调用，总之我是没找到怎么设置背景色；上一次的东西也无法清除，我搞不懂为什么会变成黑色。SL倒是查到有篇可以清理，按照这种情况看可能SL的运行效率比WPF还要好？WPF团队早就在&amp;ldquo;淫光&amp;rdquo;中那乐不思蜀了。&lt;a href="http://nokola.com/blog/post/2009/11/11/Best-Way-To-Clear-WriteableBitmap.aspx"&gt;http://nokola.com/blog/post/2009/11/11/Best-Way-To-Clear-WriteableBitmap.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.除了精神上摧残外，肉体也让我受不了，房间内有嗡嗡的吵杂声让我几经崩溃，也找不到声音来源，怀疑是隔壁或是外面马路上的施工，忙了半天连澡都没戏。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;小结：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 虽然我坚信成功来源于坚持，可还是需要良道吉日的，感觉很费，早上还要上班，我的天啊。算了睡前安慰下，WPF的呈现速度还过的去，中间滚轮支持定点放大缩小，没怎么做用的是默认的，右键可以返回到原来的样子，其他的就是左键点住拖拖试试了。&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/Curry/201012/201012220255332003.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/Curry/201012/201012220255415812.png" border="0" alt="image" width="785" height="618" /&gt;&lt;/a&gt; （图一如果不是背景，水滴留过的地方就会有黑色）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/Curry/201012/201012220255447401.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" src="http://images.cnblogs.com/cnblogs_com/Curry/201012/201012220255476057.png" border="0" alt="image" width="793" height="626" /&gt;&lt;/a&gt; （图二只能是黑色）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/Curry/Liquid.rar"&gt;附件下载&lt;/a&gt;：希望好心人能帮我解决下背景问题&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;______________________&lt;/p&gt;&lt;p&gt;&lt;strong&gt;后记：（原来附件还是有问题未修改）&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;感谢各位的支持，特别是&lt;a href="http://www.cnblogs.com/Rex/"&gt;地狱门神&lt;/a&gt;和&lt;a href="http://www.cnblogs.com/Clingingboy/"&gt;Clingingboy&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;1.确实如地狱门神所说，背景问题是由于我的Long类型超出界限，影响到其他的格子所致。修改如下既可&lt;/p&gt;&lt;p&gt;byte* pBackBuffer = (byte*)_writeableBitmap.BackBuffer;&lt;/p&gt;&lt;p&gt;   &lt;br /&gt;// Find the address of the pixel to draw.    &lt;br /&gt;pBackBuffer += row * _writeableBitmap.BackBufferStride;    &lt;br /&gt;pBackBuffer += column * 4;    &lt;br /&gt;pBackBuffer[0] = color.B;    &lt;br /&gt;pBackBuffer[1] = color.G;    &lt;br /&gt;pBackBuffer[2] = color.R;    &lt;br /&gt;pBackBuffer[3] = color.A;&lt;/p&gt;&lt;p&gt;就是把_writeableBitmap.BackBuffer当成byte*来扫描，应该说是位图中的基本操作了，惭愧惭愧。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.Clingingboy给我另一种思路，也可以说是换了另外一套API来实现，感觉比用指针操作还快而且还不需要把项目设成unsafe编译，这API应该可以用于SL。&lt;/p&gt;&lt;p&gt;这种方法是使用WritePixels这个方法来实现。我把他给我项目又修改了下，完全用这个方法还省却了自己的锁定和表示更新操作。&lt;/p&gt;&lt;p&gt;当然你也可以用两种方法一起来在操作，这样的话背景是图画也是可以的，如把图片的点保存为一个数组，WritePixels每次用这个数组当背景刷新，用指针操作来抒写Water点。&lt;/p&gt;&lt;p&gt;当然我这份是最简单的谁让我这么懒呢。&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/Curry/Clingingboy_Liquid.rar"&gt;修改后附件&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Curry/aggbug/1913323.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Curry/archive/2010/12/22/WPFLiquid.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2010/05/05/1728096.html</id><title type="text">程序员面对分歧和难题应当具备的态度【转】</title><summary type="text">能力不是最重要的，态度才是决定因素。程序员由于幼年受虐，缺乏异性关爱，以及鲜与人类交流等特殊原因，滋生了很多心理疾病，点一盏明灯，照亮这些阴暗角落，愿大家健康茁壮成长。1、在没有能力之前，不要过分追求代码完美，完成全部功能才是目标。写完美代码的关键，是对问题有没有完美深入的理解，而不是什么设计模式。2、发表意见前，请三思，对没有做过的工作，千万不要说“这个很简单，XX一下就好了&amp;rdq...</summary><published>2010-05-05T07:31:00Z</published><updated>2010-05-05T07:31:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2010/05/05/1728096.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2010/05/05/1728096.html"/><content type="text">能力不是最重要的，态度才是决定因素。程序员由于幼年受虐，缺乏异性关爱，以及鲜与人类交流等特殊原因，滋生了很多心理疾病，点一盏明灯，照亮这些阴暗角落，愿大家健康茁壮成长。1、在没有能力之前，不要过分追求代码完美，完成全部功能才是目标。写完美代码的关键，是对问题有没有完美深入的理解，而不是什么设计模式。2、发表意见前，请三思，对没有做过的工作，千万不要说“这个很简单，XX一下就好了&amp;rdq...</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2010/04/02/LineChart.html</id><title type="text">用WPF山寨折线图，抄？是狠狠的抄</title><summary type="text">对于没有美术细胞的我来说，抄袭人家的设计或是创意是再平常不过的事，我承认这很无耻，如果在伟大“天朝”的教育体系下还可能升级为道德上的沦丧，毕竟人家搞个东西也不容易，可任务在身，只好下策，脸皮总是在生存以后才拿上台面的。所以也就不避讳了，俺就是抄的。</summary><published>2010-04-02T02:21:00Z</published><updated>2010-04-02T02:21:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2010/04/02/LineChart.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2010/04/02/LineChart.html"/><content type="text">对于没有美术细胞的我来说，抄袭人家的设计或是创意是再平常不过的事，我承认这很无耻，如果在伟大“天朝”的教育体系下还可能升级为道德上的沦丧，毕竟人家搞个东西也不容易，可任务在身，只好下策，脸皮总是在生存以后才拿上台面的。所以也就不避讳了，俺就是抄的。</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2010/03/15/DispatcherPriority.html</id><title type="text">WPF DispatcherPriority 小析</title><summary type="text">长久以来DispatcherPriority对我都有种神秘的色彩，因为我甚至不知道如何“真正”的使用它。</summary><published>2010-03-15T00:45:00Z</published><updated>2010-03-15T00:45:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2010/03/15/DispatcherPriority.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2010/03/15/DispatcherPriority.html"/><content type="text">长久以来DispatcherPriority对我都有种神秘的色彩，因为我甚至不知道如何“真正”的使用它。</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2010/02/09/WPFBinding.html</id><title type="text">WPF Binding实现自推——强烈要求拍砖</title><summary type="text">     因为项目经常碰到Binding的问题，常常不能联动，所以才进行了分析，我解决方法的思路比较死板：定义问题 -&gt;分解问题 -&gt;初步解决问题 -&gt;优化解法。在解决问题过程中是有收获的，所以分享下心得，也希望各位大大能够帮助小弟查验下思路是否正确，帮忙解解惑，在这里先谢过了。当然推理这段是和WPF无关的，先有...</summary><published>2010-02-09T03:20:00Z</published><updated>2010-02-09T03:20:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2010/02/09/WPFBinding.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2010/02/09/WPFBinding.html"/><content type="text">     因为项目经常碰到Binding的问题，常常不能联动，所以才进行了分析，我解决方法的思路比较死板：定义问题 -&gt;分解问题 -&gt;初步解决问题 -&gt;优化解法。在解决问题过程中是有收获的，所以分享下心得，也希望各位大大能够帮助小弟查验下思路是否正确，帮忙解解惑，在这里先谢过了。当然推理这段是和WPF无关的，先有...</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2009/12/25/WPFDragDrop.html</id><title type="text">WPF自定义控件——顶级控件</title><summary type="text">   作为一个WPF程序员，我最希望看到的是WPF的应用，或者更确切的说是绚丽的应用，虽然限于自身的实力还不能拿出成绩来，但看到别人的作品时，心里还是有很大的宽慰——WPF是可以做出更加动人地产品的，只要你坚定的走下去，带着不满现状的追求走下去。    下图是Telerik的WPF控件，我相信很多人也下过他的...</summary><published>2009-12-25T06:18:00Z</published><updated>2009-12-25T06:18:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2009/12/25/WPFDragDrop.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2009/12/25/WPFDragDrop.html"/><content type="text">   作为一个WPF程序员，我最希望看到的是WPF的应用，或者更确切的说是绚丽的应用，虽然限于自身的实力还不能拿出成绩来，但看到别人的作品时，心里还是有很大的宽慰——WPF是可以做出更加动人地产品的，只要你坚定的走下去，带着不满现状的追求走下去。    下图是Telerik的WPF控件，我相信很多人也下过他的...</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2009/09/16/WPFDecorator.html</id><title type="text">WPF自定义控件 —— 装饰器</title><summary type="text">顾名思义就是装饰用的，也就是说不改变原有的控件结构，但可以为控件添加一些新的功能，或是为控件的显示外观增加些东西</summary><published>2009-09-16T06:47:00Z</published><updated>2009-09-16T06:47:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2009/09/16/WPFDecorator.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2009/09/16/WPFDecorator.html"/><content type="text">顾名思义就是装饰用的，也就是说不改变原有的控件结构，但可以为控件添加一些新的功能，或是为控件的显示外观增加些东西</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2009/08/30/MVVM.html</id><title type="text">制作WPF联机飞行棋的失败体验</title><summary type="text">   飞行棋作为幼时的娱乐项目在我的记忆里印象是相当深刻的，用编码实现它也一直是我自己的目标。WPF有着图像编码的舒适体验，自然成为我的首选；伴随着WPF的Binding，一种新的模式也应运而生——MVVM(Model-View-ViewModel)，使得页面和逻辑更好的分离。可这次的体验对我而言不管从技术到思想都深深的受到了打击。 &amp;#1...</summary><published>2009-08-30T03:53:00Z</published><updated>2009-08-30T03:53:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2009/08/30/MVVM.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2009/08/30/MVVM.html"/><content type="text">   飞行棋作为幼时的娱乐项目在我的记忆里印象是相当深刻的，用编码实现它也一直是我自己的目标。WPF有着图像编码的舒适体验，自然成为我的首选；伴随着WPF的Binding，一种新的模式也应运而生——MVVM(Model-View-ViewModel)，使得页面和逻辑更好的分离。可这次的体验对我而言不管从技术到思想都深深的受到了打击。 &amp;#1...</content></entry><entry><id>http://www.cnblogs.com/Curry/archive/2009/07/27/1531798.html</id><title type="text">WPF中改进自定义Command一些想法</title><summary type="text">Command来源于Command命令模式，Command模式它封装的是命令，把命令发出者的责任和命令执行者的责任分开，直白的说为了调用与具体实现解耦。关于理论俺向来是不擅长的，而且各位达人的文章也已...</summary><published>2009-07-27T02:20:00Z</published><updated>2009-07-27T02:20:00Z</updated><author><name>Curry</name><uri>http://www.cnblogs.com/Curry/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Curry/archive/2009/07/27/1531798.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Curry/archive/2009/07/27/1531798.html"/><content type="text">Command来源于Command命令模式，Command模式它封装的是命令，把命令发出者的责任和命令执行者的责任分开，直白的说为了调用与具体实现解耦。关于理论俺向来是不擅长的，而且各位达人的文章也已...</content></entry></feed>
