随笔分类 -  .NET

上一页 1 ··· 3 4 5 6 7
.NET Core .NET Framework
摘要:这篇文章不会说 MVVM 是什么,因为讲这个的文章太多了;也不会说 MVVM 的好处,因为这样的文章也是一搜一大把。我只是想说说我们究竟应该如何理解 M-V-VM,当我们真正开始写代码时,应该在里面的每一层里写些什么。 MVVM,当然三层——M-V-VM。就凭这个“三层”结构,WPF/UWP 开发者 阅读全文
posted @ 2017-11-30 01:33 walterlv 阅读(991) 评论(0) 推荐(0) 编辑
摘要:如果要你说出 .NET 中的三个异常,NullReferenceException 一定会成为其中一个;如果说出 .NET 中的一个异常,NullReferenceException 也会被大多数人说出来。它让这么多人印象深刻,是因为它在项目中实在是太常见了,常见到每一个 C#/.NET 入门者必然 阅读全文
posted @ 2017-11-30 01:32 walterlv 阅读(511) 评论(0) 推荐(0) 编辑
摘要:WPF/UWP 中提供的 Path 类可以为我们绘制几乎所有可能的矢量图形。但是,如果这些矢量图形可以以动画的形式播放出来,那将可以得到非常炫酷的演示效果。 我用 Blend 画了我的名字: 然后将它做成了动画: 而要做到这一点,我们只需要关心 Path 的两个属性即可: StrokeDashArr 阅读全文
posted @ 2017-11-23 22:37 walterlv 阅读(519) 评论(0) 推荐(0) 编辑
摘要:在很久很久以前,WPF 诞生之初,有一个神奇的单位,它的名字叫做——设备无关单位(DIP,Device Independent Unit)。微软给它描绘了一片美好的愿景——在任何显示器上显示的尺寸是相同的。 What the ** is this unit!!! 神 TM 相同!!! UWP 采用有 阅读全文
posted @ 2017-11-23 22:22 walterlv 阅读(250) 评论(0) 推荐(0) 编辑
摘要:为自己写的程序添加插件真的是一个相当常见的功能,然而如果只是简单加载程序集然后去执行程序集中的代码,会让宿主应用程序暴露在非常危险的境地!因为只要插件能够运行任何一行代码,就能将宿主应用程序修改得天翻地覆哭爹喊娘;而根本原因,就在于暴露了整个托管堆和整个 UI 树。 如果将宿主和插件放到不同的应用程 阅读全文
posted @ 2017-11-23 22:18 walterlv 阅读(576) 评论(0) 推荐(0) 编辑
摘要:在 WPF 或 UWP 中,我们平时开发所遇到的那些 UI 控件或组件,都直接或间接继承自 Framework。例如:Grid、StackPanel、Canvas、Border、Image、Button、Slider。我们总会自然而然地认为这些控件都是有大小的,它们会在合适的位置显示自己,通常不会超 阅读全文
posted @ 2017-11-23 22:16 walterlv 阅读(289) 评论(0) 推荐(0) 编辑
摘要:在 WPF 中将一个现成的 Bitmap 位图转换成 ImageSource 用于显示一个麻烦的事儿,因为 WPF 并没有提供多少可以转过来的方法。不过产生 Bitmap 来源却非常多,比如屏幕截图、GDI 图、数组或其它非托管框架生成的图片。 WPF 官方提供了一种方法,使用 System.Win 阅读全文
posted @ 2017-11-23 22:15 walterlv 阅读(371) 评论(0) 推荐(0) 编辑
摘要:尝试过写 if (x is null)?它与 if (x == null) 相比,孰优孰劣呢? x is null 还有 x is constant 是 C# 7.0 中引入的模式匹配(Pattern Matching)中的一个小细节。阅读本文将了解 x is constant 和 x == con 阅读全文
posted @ 2017-11-06 23:21 walterlv 阅读(2343) 评论(4) 推荐(1) 编辑
摘要:无论是 WPF 还是 UWP 开发,如果用 Storyboard 和 Animation 做动画,我们多数时候都会设置 From 和 To 属性,用于从起始值动画到目标值。然而动画并不总是可以静态地指定这些值,因为更多的时候动画的起始值和目标值取决于当前 UI 的状态。 本文中,我将将尽量避免设置 阅读全文
posted @ 2017-10-31 16:19 walterlv 阅读(305) 评论(0) 推荐(0) 编辑
摘要:WPF 的 UI 逻辑只在同一个线程中,这是学习 WPF 开发中大家几乎都会学习到的经验。如果希望做不同线程的 UI,大家也会想到使用另一个窗口来实现,让每个窗口拥有自己的 UI 线程。然而,就不能让同一个窗口内部使用多个 UI 线程吗? 答案其实是——可以的!使用 VisualTarget 即可。 阅读全文
posted @ 2017-10-30 23:55 walterlv 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:.NET 和 C# 共同给我们带来的 async/await 异步编程模型(TAP)用起来真的很爽。为了实现异步等待,我们只需要在一切能够能够异步等待的方法前面加上 await 即可。能够异步等待的最常见的类型莫过于 Task,但也有一些其他类型。即便有些耗时操作没有返回可等待的类型,我们也可以用一 阅读全文
posted @ 2017-10-29 20:42 walterlv 阅读(2722) 评论(1) 推荐(2) 编辑
摘要:最近读到一篇异步转同步的文章,发现其中没有考虑到异步转同步过程中发生的死锁问题,所以特地在本文说说异步转同步过程中的死锁问题。 文章作者 林德熙 已经修复了描述: - win10 uwp 异步转同步 什么情况下会产生死锁? 调用 Task.Wait() 或者 Task.Result 立刻产生死锁的充 阅读全文
posted @ 2017-10-28 00:00 walterlv 阅读(730) 评论(0) 推荐(0) 编辑
摘要:当你跑起了一个异步线程,并用 await 异步等待时,有没有好奇为什么能够在主线程 catch 到异步线程的异常? 当你希望在代码中提前收集好异常,最后一并把收集到的异常抛出的时候,能不能做到就像在原始异常发生的地方抛出一样? 本文介绍 ExceptionDispatchInfo,专门用于重新抛出异 阅读全文
posted @ 2017-10-23 22:33 walterlv 阅读(1035) 评论(1) 推荐(2) 编辑
摘要:在 WPF 中,如果我们要做拖动效果,通常会调用一下 CaptureMouse/CaptureStylus 以便当鼠标或手指离开控件的时候依然能够响应 Move 和 Up 事件。不知有没有注意到这两个函数其实是有 bool 返回值的?——是的,它们可能会失败。 在调试一个项目代码的时候,我就发现了这 阅读全文
posted @ 2017-10-21 16:36 walterlv 阅读(197) 评论(0) 推荐(1) 编辑
摘要:如果你的程序抛了异常,你是怎么处理的呢?等待程序崩溃退出?还是进行补救? 如果是做 UI 开发,很容易就找到 Dispatcher.UnhandledException 事件,然后在事件中进行补救。如果补救成功,可以设置 e.Handled = true 来阻止异常继续让程序崩溃退出。但是,如果是后 阅读全文
posted @ 2017-10-21 16:32 walterlv 阅读(1708) 评论(0) 推荐(0) 编辑
摘要:Yield 这个词很有意思,叫做“屈服”“放弃”“让步”,字面意义上是让出当前任务的执行权,转而让其他任务可以插入执行。Task、Dispatcher、Thread 都有 Yield() 方法,看起来都可以让出当前任务的执行权。 如果在阅读中发现对本文涉及到的一些概念不太明白,可以阅读: 深入了解 阅读全文
posted @ 2017-10-21 16:30 walterlv 阅读(295) 评论(0) 推荐(1) 编辑
摘要:希望写一个小型工具,给自己和需要的人。考虑到代码尽可能的复用,我准备采用 .Net Standard 来编写大多数核心代码,并基于 .Net Core 编写跨平台控制台入口,用 WPF 编写桌面端 UI 入口,用 UWP 作为可上架商店的 UI 入口,然后用 Shared Project 共享 WP 阅读全文
posted @ 2017-10-21 16:27 walterlv 阅读(342) 评论(0) 推荐(0) 编辑
摘要:本文代码基于 .NET Framework 实现。 本来只想进行简单的配置存储的,不料发现 .NET 的基本类型多达十多种。于是,如果写成下面这样,那代码可就太多了哦: 尝试使用泛型 这些方法都比较相似,于是自然而然想到了泛型,所以写出了这段代码: 这里就郁闷了,因为虽然方法内部的实现都长得差不多, 阅读全文
posted @ 2017-01-17 18:12 walterlv 阅读(3214) 评论(3) 推荐(3) 编辑
摘要:一个坑 在WPF应用程序(或者其他Windows应用程序中),为了监听Alt键按下,我们可以尝试写出这样的代码: 然而,运行一看,发现并没有什么用。A处的代码根本就没执行。 打个断点看下,会发现, e.Key 的值是 Key.System 。这就奇怪了, Key.System 是个什么鬼? 一段源码 阅读全文
posted @ 2016-05-09 10:59 walterlv 阅读(3714) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7