- 博客(2029)
- 资源 (174)
- 问答 (1)
- 收藏
- 关注
原创 WPF 某个界面或控件在界面找不到看不到可能的原因
本文来告诉大家在 WPF 开发中,发现有某个按钮或某个控件,某个预期的界面,没有在窗口或者没有在界面里面看到或者找到可能的原因和调试的方法不在视觉树如果控件在界面看不到,首先需要通过视觉树了解控件是否还在视觉树上一个不存在视觉树的控件,肯定不会在界面中显示调试某个控件元素是否在 WPF 界面的视觉树上,可以通过 VisualStudio 的实时可视化树功能进行调试如果已进入后台断点,...
2021-06-15 00:37:08 4443
原创 WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法
阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具。本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 XAML 构建过程的方法和代码本文非新手友好,有大量构建和预编译知识,请在阅读本文之前自行了解这部分知识。更多请看 手把手教你写 Roslyn 修改编译在 WPF 中,构建 XAML 用的是...
2021-06-10 11:17:00 670 2
原创 dotnet 忽略输出文件夹的正则表达式
本文告诉大家在 dotnet 里面忽略 obj 和 x86 等输出文件夹的正则表达式内容正则表达式如下 private static readonly Regex IgnoreIdentifierRegex = new Regex(@"^([Bb]in|[Oo]bj|[Dd]ebug|[Rr]elease|[Xx]86|[Xx]64|net[\.\w]*\d+)$&...
2021-06-09 00:49:35 392
原创 让 dotnet 命令行输出作为英文的方法
在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文。在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理我。本文来告诉大家如何让 dotnet 的命令行输出英文,从中文切换语言为英文方法需要有两步,第一步是设置环境变量,如果执行 dotnet build 命令,是在命令行里面执行,可以通过如下代...
2021-06-09 00:49:35 563
原创 dotnet 读 WPF 源代码 聊聊 DispatcherTimer 的实现
本文来告诉大家在 WPF 框架里面,是如何实现 DispatcherTimer 的功能。有小伙伴告诉我,读源代码系列的博客看不动,原因是太底层了。我尝试换一个方式切入逻辑,通过提问题和解决问题的方法,一步步告诉大家 WPF 是如何实现 DispatcherTimer 的功能假定咱是 WPF 框架的开发者(虽然我就是,尽管是格式化代码工程师)咱需要实现一个 DispatcherTimer 的...
2021-06-09 00:49:35 509
原创 WPF 如何知道当前有多少个 DispatcherTimer 在运行
在 WPF 调试中,对于 DispatcherTimer 定时器的执行,没有直观的调试方法。本文来告诉大家如何在 WPF 中调试当前主线程有多少个 DispatcherTimer 在运行在 WPF 中,如果有 DispatcherTimer 定时器在执行,将会影响到主线程的执行,将会让主线程诡异忙碌。或者有 DispatcherTimer 定时器忘记订阅 Tick 同时也忘记设置时间,将会...
2021-06-08 11:45:45 464
原创 dotnet 读 WPF 源代码 Popup 的 StaysOpen 为 false 将会吃掉其他窗口的首次激活
在 WPF 中,使用 Popup 控件,可以设置 StaysOpen 属性来控制是否在 Popup 失去焦点时,也就是点击界面空白处,自动收起 Popup 控件。但如果有两个窗口,在设置 Popup 控件的 StaysOpen 属性为 false 那么将会吃掉在点击其他窗口的第一次交互,如鼠标点击或触摸点击时将不会让本进程的其他窗口 Activate 激活在 WPF 中,通过 Popup ...
2021-06-07 00:55:59 1429
原创 WPF 在窗口的 Deactivated 使用 Mouse 的 Capture 将会让进程失去交互
如果在某个窗口的 Deactivated 事件里面,使用 Mouse.Capture 方法,让这个窗口重新捕获鼠标,那么将会让进程的所有窗口都失去鼠标交互,点击无效,只有在切换到其他进程的窗口之后,才能让窗口继续交互实现这个坑的逻辑很简单,假定有两个窗口,分别是 MainWindow 和 Window1 两个窗口,在 Window1 的 Deactivated 事件里面,使用 Mouse.C...
2021-06-07 00:55:59 717
原创 WPF 的 DefaultEventAttribute 有什么作用
在自定义 WPF 控件库时,可以看到有一些控件会加上 DefaultEventAttribute 特性,通过这个特性可以告诉 XAML 编辑器,默认创建的事件是什么如编写一个 UserControl1 的用户自定义控件,可以在 xaml.cs 代码加上此特性 [DefaultEvent("Foo")] public partial class UserCont...
2021-06-07 00:55:59 388
原创 dotnet OpenXML 预设 PresetColorValues 颜色对应的值
本文来告诉大家 ECMA 376 文档的 20.1.10.47 章的 ST_PresetColorVal 预设颜色值对应的颜色在 OpenXML SDK 里面,根据传入的 DocumentFormat.OpenXml.Drawing.PresetColorValues 可以获取到 ST_PresetColorVal 预设颜色值,而这些颜色值在 ECMA 376 文档的 20.1.10.47 ...
2021-06-05 01:09:24 428
原创 dotnet OpenXML SDK 形状几何 Geometry 的计算公式含义
本文来告诉大家,在 OpenXML 里面的 Geometry 的如 gdLst 和 ahLst 和 pathLst 等里面参数的公式的参数含义这部分内容放在 ECMA-376 的 20.1.10.55 章文档里面,本文只是将文档里面的内容翻译一下在使用 OpenXML 读取形状时,会看到有些形状的定义内容如下 <avLst xmlns="http://schemas....
2021-06-04 01:02:12 600
原创 Unity3D OpenVR SteamVR 在头盔视觉前面常驻文本
我期望在玩家视觉前方常驻一点文本,用于做有趣的交互,实现方法很简单在开始之前,期望大家已阅读过基于 SteamVR 的 Unity3D 相关博客,如果还没了解相关知识,请参阅如下博客Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序Unity OpenVR 虚拟现实入门三:最...
2021-06-01 10:52:13 655 5
原创 Unity3D OpenVR SteamVR 点击菜单切换场景
本文来告诉大家如何在基于 SteamVR 的 Unity3D 里面在用户点击菜单的时候,切换到新的场景的方法在开始之前,期望大家已阅读过基于 SteamVR 的 Unity3D 相关博客,如果还没了解相关知识,请参阅如下博客Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序Un...
2021-05-31 00:51:17 1808 5
原创 Win32 使用 SetCurrentProcessExplicitAppUserModelID 关联多个进程 在任务栏合并 WPF 多进程窗口
我有一个 WPF 应用,这是一个绿色软件,会被用户拷贝这和那的文件夹,我期望在多个文件夹里面打开的进程,在任务栏里面都可以将窗口进行合并。使用 Win32 的 Shell32.dll 提供的 SetCurrentProcessExplicitAppUserModelID 可以显设置应用的 Application User Model ID 从而让在多个不同的路径打开的应用,使用相同的 Id 而在任...
2021-05-29 09:28:31 1466
原创 Autofac 集成测试 在 ConfigureContainer 之后进行 Mock 注入
在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖原有业务代码注册的正式对象。但 Autofac 默认没有提供此机制,我阅读了 Autofac 的源代码之后,创建了一些辅助代码,实现了此功能。本文将告诉大家如何在集成测试里面,在使用了 Autofac...
2021-05-29 03:36:20 726
原创 dotnet OpenXML 读取形状轮廓线条样式序号超过主题样式列表数
在 OpenXML 中,默认的形状可以通过指定 LineReference 让形状使用文档主题里面的样式。文档主题里面包含多个样式,在形状里面指定样式通过的是序号的方法,如果在形状里面指定的序号超过了主题的数量,那么将会使用最后一项样式开始之前,我准备了这份课件,我将课件和代码都放在 GitHub 上可以在本文最后找到链接在这份课件中,第一页里面有一个形状元素,在形状元素里面定义了样式使用...
2021-05-26 00:41:09 388
原创 dotnet 读 WPF 源代码笔记 插入触摸设备的初始化获取设备信息
在 WPF 触摸应用中,插入触摸设备,即可在应用里面使用上插入的触摸设备。在 WPF 使用触摸设备的触摸时,需要获取到触摸设备的信息,才能实现触摸获取触摸设备插入在 WPF 中,通过 Windows 消息获取触摸设备插入事件,在 src\Microsoft.DotNet.Wpf\src\PresentationCore\System\Windows\Input\Stylus\Wisp\W...
2021-05-24 12:15:06 478
原创 WPF 用到的触摸的 COM 接口
本文记录 WPF 用到的触摸的 COM 接口消息用到了 WM_TABLET_ADDED 和 WM_TABLET_DELETED 消息使用的代码是 src\Microsoft.DotNet.Wpf\src\PresentationCore\System\Windows\Input\Stylus\Wisp\WispLogic.cs 的 HandleMessage 方法 int...
2021-05-23 00:49:44 464
原创 WPF 列表控件数据源绑定多个数据集合方法
在 WPF 用的多的列表控件如 ListBox 或 ListView 等,本文告诉大家在这些列表控件上进行绑定多个数据集合来源的多个实现方法。如有一个显示动物列表的控件,需要绑定的数据来源是阿猫和阿狗两个 ObservableCollection 列表,不在后台代码编写合并集合的代码情况下,可以通过 XAML 的编写,绑定多个数据集合准备在开始之前,咱先搭建一点测试使用的代码,假定咱有一个...
2021-05-22 02:38:48 2237
原创 考古 dotnet 的不同版本
本文来考古一下 dotnet 发布过的版本,相信本文里面有很多个版本都是大家很少听过的什么才能称为一个 dotnet 版本?从 .NET Framework 1.0-4.8 算多少个版本?其实我这里说的版本指的是不同的实现,我将整个 .NET Framework 算作一个版本。而将 .NET 的不同的分支,分别作为不同的版本下面列举一下 dotnet 的不同版本.NET Framewor...
2021-05-21 00:35:16 846
原创 dotnet C# 实现 GetHashCode 的方法
本文来聊聊在重写某个类的 GetHashCode 方法时,可以如何实现 GetHashCode 的返回值按照 GetHashCode 方法的原则,要求两个对象如果 Equals 返回 true 那么一定要求 GetHashCode 也返回相同的值。当然,反过来不成立,也就是两个对象返回的 GetHashCode 的值相同,对象可以是不相等的实现 GetHashCode 方法的方式有很多,最...
2021-05-21 00:35:16 1220 4
原创 dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
本文来安利大家一个有趣而且强大的库,通过 F# 和 C# 混合编程编写 WPF 应用,可以在 WPF 中使用到 F# 强大的数据处理能力在 GitHub 上完全开源 Elmish.WPF 库,请看 https://github.com/elmish/Elmish.WPF在阅读本文之前,我期望大家已了解部分 F# 的知识。在学会 C# 基础知识之下,了解 F# 基础知识是很快的,而本文也仅仅...
2021-05-19 00:34:01 971 3
原创 Unity3D OpenVR SteamVR 获取输入动作按键 交互设备数据方法
在开发 OpenVR 游戏或应用时,由于 VR 设备的交互形式和传统的形式不相同,因此获取输入交互设备数据如按键等的方式也有所不同。在 Steam VR SDK 里面给出了推荐的做法是只定义交互名称,而不获取具体的硬件设备信息,也就是说咱在应用或游戏里面采用的交互都是抽象的交互,至于这个抽象的交互是采用哪个硬件产生的,就交给跟上一层进行定义,于是就能很好的将编写代码的获取输入和各个不同类型的 VR...
2021-05-18 00:37:32 1642 4
原创 Unity3D OpenVR 虚拟现实 保龄球打砖块游戏开发
据说水哥买了 Valve Index 设备,既然这个设备这么贵,不开发点有(zhi)趣(zhang)游戏就感觉对不起这个设备。本文将来开始着手开发一个可玩性不大,观赏性极强的保龄球打砖块游戏。这仅仅只是一个入门级的游戏,代码量和制作步骤都超级少,适合入门在开始之前,请参阅水哥提供的环境搭建以及部分必备知识博客Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenV...
2021-05-17 00:19:29 1189
原创 Unity3D OpenVR SteamVR Input Action 动作
本文来告诉大家在 Unity3D 中的 SteamVR Input 里面的 Action 动作行为开始之前,请先阅读 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 - walterlv 和 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 - walterlv 配置完成环境完成配置环境之后,即可在窗口里面找到 SteamVR...
2021-05-16 02:38:47 1127
原创 WPF 已知问题 BitmapDecoder.Create 不支持传入 Asynchronous 的文件流
这是在 GitHub 上有小伙伴报的问题,在 WPF 中,不支持调用 BitmapDecoder.Create 方法,传入的 FileStream 是配置了 FileOptions.Asynchronous 选项的文件流。本质原因是 WIC 层不支持,和 WPF 没有关系GitHub 链接: BitmapDecoder.Create does not handle FileStream w...
2021-05-15 01:12:38 438
原创 WPF 适合入门阅读的开源项目 SeeGit 图形化 Git 历史记录
本文来安利大家一个不错的开源项目,这个开源项目整体写的不错,也有用到 MVVM 框架,项目组织以及命名等都还行,功能也实现完全,适合入门级阅读这是一个在 GitHub 上完全开源的项目,请看 haacked/seegit: SeeGit - The Git Repository Visualizer运行界面如 GitHub 首页所示这个仓库使用了 QuikGraph 和 GraphSha...
2021-05-13 00:47:53 487
原创 通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因
使用 COM 的方式可以调用本机的 Office 组件进行 PPT 以及 Word 和 Excel 等文件的读写,在打开文件的时候,如果提示 System.Runtime.InteropServices.COMException (0x80004005) 就意味着这是一个通用的错误,没有具体的原因调用 COM 组件,提示 System.Runtime.InteropServices.COME...
2021-05-11 00:42:56 2422
原创 win10 uwp 使用 XamlTreeDump 获取 XAML 树元素内容
本文来安利大家 XamlTreeDump 库,通过这个库可以将 XAML 树上的元素转换为 json 字符串,可以用来进行 UI 单元测试开始之前先通过 NuGet 工具安装 XamlTreeDump 库假定咱有 UI 界面代码如下<Page x:Class="WholebaycarNowawnawka.MainPage" xmlns="...
2021-05-10 00:30:38 339
原创 dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 用户设备上不存在 Arial 字体将导致应用闪退...
本文来告诉大家 WPF 已知问题,在用户的设备上,如果不存在 Arial 字体,同时安装了一些诡异的字体,那么也许就会让应用在使用到诡异的字体的时候,软件闪退在 WPF 的 FontFamily.cs 字体类里面,有一个叫 FirstFontFamily 的属性,这个属性的逻辑代码里面将包括在当前字体太过诡异时,自动 Fallback 到默认的字体,而默认的字体就是 Arial 字体。这...
2021-05-08 00:43:32 457
原创 Autofac 通过 PreserveExistingDefaults 解决单元测试 Fake 对象被覆盖
在使用 Autofac 作为 IoC 容器,因为 Autofac 默认的创建时机是在主机运行时。而在此 Module 被 Load 时注入的对象的注入的时机,将会在单元测试 Fake 注入之后,这就意味着 Load 时注入的对象将会覆盖 Fake 的对象。可以通过调用 Autofac 的 PreserveExistingDefaults 方法解决覆盖的问题在进行集成测试,需要注入一些 Fak...
2021-05-06 12:24:03 412
原创 dotnet Roslyn 通过读取 suo 文件获取解决方案的启动项目
本文来告诉大家一个黑科技,通过 .suo 文件读取 VisualStudio 的启动项目。在 sln 项目里面,都会生成对应的 suo 文件,这个文件是 OLE 格式的文件,文件的格式没有公开,本文的方法适合用在 VisualStudio 2019 上,对于其他版本的 VisualStudio 也许会不适合感谢 Simon Cropp 大佬提供的方法默认在 sln 解决方案文件的相同文件...
2021-04-29 00:38:37 386
原创 dotnet 运行时获取某类型的对象占用内存大小
本文将告诉大家一个黑科技方法在运行时动态获取对象本身占用空间,不包括对象引用的其他对象的空间大小的方法此方法是在开源仓库 sidristij/dotnetex: Gets size of .Net Framework objects, can change type of object to incompatible and can alloc .Net objects at unmana...
2021-04-28 00:50:24 705
原创 WPF 如何知道当前有多少个 DispatcherTime 在运行
在 WPF 调试中,对于 DispatcherTimer 定时器的执行,没有直观的调试方法。本文来告诉大家如何在 WPF 中调试当前主线程有多少个 DispatcherTimer 在运行在 WPF 中,如果有 DispatcherTimer 定时器在执行,将会影响到主线程的执行,将会让主线程诡异忙碌。或者有 DispatcherTimer 定时器忘记订阅 Tick 同时也忘记设置时间,将会...
2021-04-28 00:50:24 404
原创 WPF 给类库设置设计时使用的资源字典
在开发 WPF 类库时,由于类库里面没有存在 App.xaml.cs 文件,而在对单个 XAML 进行开发时,设计器将会因为找不到资源文件的存在,而拿不到资源。本文告诉大家简单的方法,给设计器设置仅在设计时引用的资源在 WPF 的 XAML 中,如果对每个 XAML 控件都引用相同的资源,此时设计时将可以愉快的跑起来,然而在运行时将会重复创建资源影响性能。在开发 WPF 应用时,在入口项目...
2021-04-23 00:58:47 1074
原创 ASP.NET Core 引用其他程序集项目里面的 Controller 控制器
我将控制器 Controller 按照不同的业务,分为多个不同的项目,我需要在路由里面调度到多个不同项目的控制器只需要在 Startup 的 ConfigureServices 方法,调用 AddControllers 添加控制器,再加上额外的程序集即可,如下面代码,下面代码的 WeatherForecastController 是定义在另一个程序集的类 public voi...
2021-04-23 00:58:47 2979
原创 dotnet 读 WPF 源代码笔记 WriteableBitmap 的渲染和更新是如何实现
在 WPF 框架提供方便进行像素读写的 WriteableBitmap 类,本文来告诉大家在咱写下像素到 WriteableBitmap 渲染,底层的逻辑之前我使用 WriteableBitmap 进行 CPU 高性能绘图时,在性能调试遇到一个问题,写入到 WriteableBitmap 的像素会经过两次拷贝。其中一次是我自己拷贝到 WriteableBitmap 而另一次拷贝就在 Wri...
2021-04-20 01:15:53 741
原创 dotnet 文档应用的撤销重做设计
文档应用是指如 Word 或 PPT 等的提供给用户进行内容创作的工具,而撤销重做其实也被称为撤销恢复功能。本文来告诉大家撤销重做这个模块的设计路线,从简单的复杂大部分的应用软件都可以采用敏捷开发,不断进行迭代。应用的每个小功能都在不断迭代中,成为模块或者某个团队产品。撤销重做功能也是可以从一个小功能,迭代成为一个文档的核心模块在软件开始开发的时候,很少会有人能了解这个软件产品的未来,如果...
2021-04-19 00:29:52 400
原创 dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 后台线程创建 WriteableBitmap 锁住主线程
在 WPF 中,如果在没有开启 Dispatcher 的后台线程里面创建 WriteableBitmap 对象,在 WriteableBitmap 构造函数传入在主线程创建的 BitmapSource 也许就会锁住主线程。本文将通过 WPF 框架源代码告诉大家为什么会锁住主线程这是在 WPF 开源仓库上一个小伙伴报的,详细请看 WriteableBitmap hangs when sourc...
2021-04-17 00:33:00 598
gtk 3.24.24 for win32
2022-08-08
鼠标光标大全1.0.0.zip
2021-08-05
Microsoft.Templates.4.1.21179.1.vsix
2021-07-21
ECMA-376.7z
2021-07-03
OpenXMLSDK v25.7z
2021-06-05
Fix WriteableBitmap hangs when source bitmap is rendered on other thread
2021-04-17
WPF 私有构建版本 2021.4.17.zip
2021-04-17
sublime_merge_build_2039_x64_setup.exe
2020-12-23
MonoFramework-MDK-6.12.0.114.macos10.xamarin.universal.pkg
2020-12-23
nuget 5.8.0.6930.exe
2020-11-16
myscript-iink-recognition-text-zh_CN 1.3.zip
2020-07-20
Docker Desktop Installer 2.3.0.3 45519 windows community.7z
2020-07-05
dotnet-sdk-5.0.100-preview.7.20319.6-win-x64.exe
2020-06-23
sublime_merge_build_2020_x64_setup.exe
2020-06-22
vsdbg-16-6-20415-1 vsdbg-linux-musl-x64.zip
2020-06-22
vsdbg-16-6-20415-1 vsdbg-linux-x64.zip
2020-06-22
aspnetcore-runtime-3.1.4-linux-x64.tar.gz
2020-05-23
DPC Latency Checker 1.4.0.zip
2020-05-19
strawberry-perl-5.28.1.1-1-win64-x64.zip
2020-04-23
Snoop 3.0.0-alpha0116.msi
2020-04-18
dotnet-runtime-3.1.2-linux-x64.tar.gz
2020-04-03
aspnetcore-runtime-3.1.2-linux-x64.tar.gz
2020-04-03
影子输入法1.5.6稳定版.7z
2020-04-03
dotnet-core-uninstall-1.0.115603.msi
2020-03-12
PowerShell.Linux.x64.7.0.0-rc.2.nupkg
2020-03-07
dotnet-sdk-3.1.102-linux-x64.tar.gz
2020-03-07
dotnet-sdk-5.0.100-alpha1-015515-win-x64.exe
2020-03-06
mono-6.6.0.161-x64-0.msi
2020-03-01
UnitySetup-WebGL-Support-for-Editor-2018.3.7f1.exe
2020-03-01
dotnet-sdk-3.0.102-win-x64.exe
2020-03-01
mono-wasm-e894d683f9f.zip
2019-11-05
mono-wasm-f5cfc67c8ed.zip
2019-11-05
microsoft.dotnet.ilcompiler.1.0.0-alpha-27527-02.nupkg
2019-10-24
我想在linux运行c#程序,请问我需要做什么?
2015-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人