林德熙 - 微软最具价值专家和 .NET 基金会成员
我看到朋友的代码出现绑定了 一个 TextBlock 的 Text 的 length ,那时候我觉得 length 不是依赖属性,绑定了是无法通知的。最后我做了实验才发现,原因有 Text 可以通知。
如果是写在 xaml 的绑定,很难看到是那里出错。本文告诉大家如何在 vs 调试 binding 是否绑定上?
在写 WPF 程序的时候会遇到依赖属性绑定了,但是值没有更新或者没有绑定上的问题,本文告诉大家可以如何调试
如果在 WPF 需要用多进程通信,一个推荐的方法是 WCF ,因为 WCF 是 RPC 计算。先来讲下 RPC (Remote Procedure Call) 远程过程调用,他是通过特定协议,包括 tcp 、http 等对其他进程进行调用的技术。详细请看百度
本文告诉大家如何不使用框架,从零开始开发一个 dotnet remoting 程序
在网上有很多图片都是gif,那么如何在 wpf 解析 gif? 本文告诉大家如何使用 GifBitmapDecoder 把gif分开为一张一张,获得他的信息。
本文主要翻译微软官方的文档和添加一些在开发过程比较多小伙伴问的问题,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期。如果觉得我有讲的不对的,就多多包含,或者直接关掉这篇文章,但是请勿生气或者发怒吐槽,欢迎在我博客评论
这是数据模板,一般用在数组的绑定,显示数组中的元素。
假如我们有一个列表,列表里是书,包括书名、作者、还有出版,那么我们只有源信息,如何把它显示到我们的ListView,就需要DataTemplate。
使用很简单,我们可以定义在资源,也可以定义在ItemTemplate。
数据模板有绑定的问题。
我们使用Binding
和WPF其实没有多少不同,在Mode只有OneWay
,OneTime
,TwoWay
。我们使用的x:bind
在DataTemplate才和原来有一些不同。
我们使用x:bind
需要我们对我们数据的类型,这个在前没有,我开始不知,弄了好久,最后才知道,还有一个,UWP默认是OneTime,也就是绑定只有一次。
有时候我们会把一些特殊字体打包到软件,因为如果找不到我们的字体会变为默认,现在很多字体图标我们用得好,有时候我们的应用会用很漂亮的字体,需要我们自己打包,因为用户一般是没有字体。 本文告诉大家如何在 UWP 内置字体,把字体打包到应用
如果需要让 Flyout 显示在指定的位置,那么请看本文。 本文主要让 MenuFlyout 出现在我们右击位置。
我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap。关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说。主要说的是 BitmapImage 和 WriteableBitmap 、二进制 byte 的互转。
本文告诉大家如何定义、使用资源
将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
本文告诉大家,如果自己有做一些好用的库,如何使用 Nuget 打包之后上传,分享给大家。
本文告诉大家如何写同一个简单的动画。
本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用。 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用。
本文告诉大家,如果在 使用 x:Bind 转换器写在资源,而运行出现找不到资源的错误,如果解决。
在运行的时候,出现System.Runtime.InteropServices.COMException Cannot find a resource with the given key
MVVM 是一个强大的架构,基本从 WPF 开始,wr(我说的就是微软)就提倡使用 MVVM。它可以将界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写中。 然后在编写完后台代码后,可以快速和界面设计师做出来的界面绑定到一起,即使频繁修改界面也几乎不需要去修改后台代码。 更让人喜欢的是,他可以让我们简单地进行单元测试,因为我们可以不打开界面进行测试功能,方便了我们的测试开发。 UWP 虽然可以直接在xaml.cs 写逻辑但是我们是推荐使用 MVVM 框架,写一个自己的框架也很简单。 本文主要:如何在 UWP 使用 MVVM,如何做一个自己的框架。
本文主要:如何开发一个 visual Studio 扩展,其实扩展也叫插件。 那么就是如何开发一个 vs插件。 本文也记录了我调试 VisualStudio 半个月过程遇到的坑。
在 VisualStudio 右击任意的文件夹,点击属性,可以看到属性里面有一个选项是自定义工具。如果创建的是 WPF 项目,可以看到页面或用户控件的自定义工具是 XamlIntelliSenseFileGenerator 可以用来在设计时转换文件,将转换的输出放在另一个文件中。通过这个方法可以自己定义一些内容,在修改内容文件的时候自动生成代码
很多小伙伴都好奇 VisualStudio 2019 有哪些功能,下面让我介绍一些好玩的特性
在安装了几天之后,终于有了 VisualStudio 2019 于是再安装了 dotnet core 3.0 预览版,现在可以来尝试使用 C# 8.0 的新方式
在一些大项目需要很多独立的仓库来做,每个仓库之间都会有很多相同的配置,本文告诉大家如何通过 Directory.Build.props 管理多个项目配置
我和小伙伴说只要你安装我的 NuGet 库无论你怎么做,都会调用我的 Main 函数,默认的主函数不会调用
我有一个很大的项目,这个项目里面包含了很多小的底层库。有一天我发现了某个底层库可能有小伙伴挖了一个坑,我期望调试这个底层库,但是我一点都不想编译整个大项目,因为底层库被太多的项目应用,一点点修改都需要编译很久。本文提供一个简单的方法让大家可以通过修改项目文件,让 VisualStudio 可以急速调试底层库,每次更改底层库只需要重新编译底层库就可以
默认无论是在 VisualStudio 还是在 dotnet 命令行都会忽略项目文件或安装库里面的消息输出,而吕水小伙伴给了一个馊主意将所有需要输出给用户的消息换为警告,因为默认是会输出警告,于是消息就可以输出了。然后某个小伙伴就过来打我,因为他一编译整个项目原本是没有警告的,现在有很多警告。于是我就在找是否有方法可以做到让消息的内容默认输出
本文告诉大家如何使用 Target 进行修改编译时的文件
本文告诉大家如何使用 Roslyn 分析代码。
resharper 可以使用 ctrl+b 跳转到源代码,但是如果使用库的源代码,那么如何跳转,会显示对象管理器,那么如何让resarper 跳转到源代码
如果想知道注入的类的某个方法被使用了几次,就可以通过 mock 提供的方法进行判断方法有没被执行或被使用多少次
经常需要连接服务器,但是有时候服务器需要代理才可以连接,所以本文告诉大家如何使用MobaXterm 代理,进行ssh代理连接
在编程思想比较高级的有递归和状态机等使用比较少的代码就可以做出复杂的逻辑,状态机的思想是在一个状态到另一个状态,每个状态知道自己能处理的内容,同时知道可以调用哪些状态 如需要解析 [x=1,y=2,w=3,h=5] 的字符串作为一个矩形,使用状态机的方法解析,在知道使用状态机的开发者看到代码就会觉得很容易理解,对于不了解状态机的开发者就会觉得逻辑很绕
本文通过很多的数据测试分析在一个项目引用很多个外部项目和将外部项目的类合并到一个项目之间的启动性能的不同。 通过分析知道了如果一个项目引用了很多项目,而且在启动过程会全部调用这些项目,这时的软件性能会比将这些项目的代码合并到一个项目的慢很多 本文的数据为 预编译框架,开发高性能应用 - 课程 - 微软技术暨生态大会 2018 - walterlv 提供
本文告诉大家我对比的使用直接创建多个类和使用反射创建多个类的性能