自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(229)
  • 资源 (3)
  • 收藏
  • 关注

原创 WPF+ Prism+ NLog

前言我在WPF + Prism中使用NLog,但是我想在每个模块(类)中使用Microsoft.Extensions.Logging.ILogger,该如何实现。背景我开始制作一个示例程序,因为我希望能够使用WPF + Prism制作一个应用程序。因为Prism官方已经将Prism.Logging从Prism框架中删除,目前选择的日志框架是NLog,通过使用Microsoft.Extensions.Logging.ILogger可以实现。虽然这可能还不是最好的用法,但是在大多数情况下,只要您知

2021-02-05 23:24:54 3164

翻译 ReactiveUI 入门

入门ReactiveUI使您能够使用MVVM模式构建反应式,可测试和可组合的UI代码。请参阅我们的ReactiveUI文档手册。我们还有一个完整的跨平台演示应用程序。入门要开始使用,请访问我们的“安装”页面。在引人注目的例子走过创造一个更完整的应用程序,展示ReactiveUI和无功扩展的力量。为什么选择MVVM?Model-View-ViewModel(MVVM)模...

2020-04-21 10:33:41 10417 3

翻译 C# 中分享重试控制

【代码】 C# 中分享重试控制。

2023-08-09 16:26:30 192

原创 PauseTokenSource 用法

【代码】PauseTokenSource 用法。

2023-08-03 17:00:28 243

翻译 The Long Running Task

我们经常遇到这样的场景,我们需要长时间运行某个函数,该函数将对某些触发器做出反应,然后运行一些代码逻辑。这是我们需要应用长时间运行的任务的地方。此任务保持活动状态并响应特定触发器。在今天的文章中,我们将研究如何创建这样一个长时间运行的任务。我们将向其传递需要运行的函数,当触发器被激活时,将执行该函数的单次运行。

2023-08-03 16:52:51 184

翻译 如何使用 SocketAsyncEventArgs 类

APM 自第一个版本起就在 .NET Framework 中实现,并使用 C# 3.0 中的 lambda 表达式等新技术进行改进。特别是对于套接字编程,APM 的新模型提供了更简单的编码,更不用说性能优势了。然后,我发现了基于事件的异步操作的新模型(请参阅MSDN 杂志 2007 年 9 月号中的“尽管MSDN说该类是专门为网络服务器应用程序设计的,但在客户端代码中使用该APM并没有限制。,本文中的代码是使用 Microsoft Visual Studio .NET 2008 编写的。

2023-07-16 23:26:09 518

翻译 Socket性能优化技巧

优化套接字性能对于构建响应迅速且可扩展的网络应用程序至关重要。为了避免在网络操作期间阻塞主线程,可以使用该类提供的异步方法。在 .NET Core 和 .NET 5+ 中,您还可以使用。Socket性能优化技巧。基于 的异步方法,例如。

2023-07-16 23:20:59 355

翻译 C# 定时器:你需要知道的一切

System.Timers.Timer 和 System.Threading.Timer 都是为在服务器类型的进程中使用而设计的,但是 System.Timers.Timer 包含一个同步对象以允许它与用户界面交互,这对于需要跟踪用户输入或更新。您不能将 System.Threading.Timer 用作组件容器中的组件,它实现了 System.ComponentModel.IContainer,因为它不是从 System.ComponentModel.Component 派生的。

2023-05-30 15:34:47 4940

原创 Datagrid Row Index Demo

【代码】Datagrid Row Index Demo。

2023-05-04 11:08:50 74 1

转载 闪退分析:使用DebugDiag自动抓取DUMP

在异常分析:所有客户端闪退问题里,我介绍了一种抓取IIS进程DUMP的方法,此方法配置简单快速,但有时候可能发生了闪退没有抓取到DUMP,本文介绍另外一种抓取DUMP的工具。DebugDiag可以按一定的规则(Rules)监控并生成DUMP,可以对闪退、高CPU占用等情况自动获取DUMP并用于分析。

2023-04-25 15:34:39 431

翻译 一个简单的 Async/Await 示例:一个计时器

因此,和以前一样,我使用 Stopwatch 来计算每次迭代所花费的时间,并调整下一次迭代的计时器等待间隔。这个局部函数是异步的。在这个后来的版本中,就好像我们在两个不同的事物之间交流状态。在 async/await 版本中,我们“等待”剩余时间并继续循环,而在定时器类版本中,我们设置了 Interval 属性。例如,在 async/await 版本中,我使用 while 循环来对迭代进行建模。总而言之,async/await 版本允许我们对计时器逻辑进行建模,而基于事件的版本则需要我们进行协调。

2023-03-13 23:03:01 360

翻译 如何在 XAML 中格式化 TimeSpan

如果您想在使用 Content 属性的 Label 中使用 StringFormat,您可以使用。

2023-03-11 16:57:15 276

转载 WPF:警惕TextBox会占用过多内存

  适当设置WPF的TextBox.UndoLimit(尤其是.NET 3.5/4.0环境下,默认值-1太可怕了)。当然这仅仅应用在频繁设置TextBox值的情况下,如果没有此类情况,无需担心。另外也要注意如果要进行频繁字符串拼接操作,请使用TextBoxBase.AppendText或者StringBuilder。

2023-03-09 10:38:10 586

转载 WinDbg快速分析异常情况Dump文件

生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDbg 如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump 文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。本文主要介绍了调试工具 WinDbg 和抓包工具 ProcDump 的使用。

2023-03-03 12:03:21 2228

翻译 WPF Datagrid MVVM - Collection Views - Filtering Data-CollectionViewSource.GetDefaultView

WPF Datagrid MVVM

2023-02-14 15:35:04 581

翻译 如果 ItemTemplate 中的 TextBox 获得焦点,则选中该 ListBoxItem

如果 ItemTemplate 中的 TextBox 获得焦点,则选中该 ListBoxItem

2023-01-10 18:08:20 305

翻译 异步互斥 async-mutex

​.NET 中的Mutex类有助于管理对资源的独占访问。当给定一个名字时,这甚至可以跨进程完成,这非常方便。​

2022-12-06 15:53:17 626

翻译 异步互斥 async-mutex

​.NET 中的Mutex类有助于管理对资源的独占访问。当给定一个名字时,这甚至可以跨进程完成,这非常方便。​

2022-12-06 15:52:06 725

转载 WPF,防止snoop窥探你的程序

此代码用于将snoop窥探到你程序的窗体关闭掉,对方如果把snoop的名称或者窗体名称修改则无效真正阻止snoop之类的程序进行窥探应该保护你程序进程的内存,而不是用投机取巧的办法snoop窥探原理,在你的程序进程写入一个来自snoop.exe的WPF窗体

2022-11-08 17:43:05 725 1

翻译 WPF INotifyPropertyChanged类的序列化问题

INotifyPropertyChanged 序列化类。

2022-11-04 17:01:46 553 1

转载 wpf绑定全局静态变量并且实现变更通知(mvvm)

在实际的开发中,有一些集合或者属性可能是全局的,比如当你做一个oa的时候,可能需要展示所有的人员,这时这个所有的人员列表显然可以作为全局参数,比如这里有一个全局的静态属性UserList。而你在使用mvvm做wpf开发的时候,一般每个view都已经指定好了viewmodel。而viewmodel显然是不包含UserList。这时如果你想在绑定了viewmodel里面绑定UserList给某个ListBox该怎么办呢。首先你可以在你的viewmodel里面定义一个UserList指向全局静态变量的引用

2022-11-03 10:41:37 1300

转载 WPF中实现基于物理像素绘图的方法是什么

今天就跟大家聊聊有关“WPF中实现基于物理像素绘图的方法是什么”的内容,可能很多人都不太了解,为了让大家更加了解“WPF中实现基于物理像素绘图的方法是什么”,小编给大家总结了以下内容,希望这篇文章能帮助大家,下面我们一起来了解看看吧。WPF中有一个DrawingContext类,该类提供了很多画法方法,例如DrawLine,DrawText,DrawRectangle等。开发者使用它们可以方便地进行图形绘制。不过,在使用DrawingContext过程中,我发现使用DawLine方法画出的线条在某些部分有

2022-11-03 09:49:11 481 1

翻译 GDI 和 WPF 的区别

​Windows Presentation Foundation(WPF)API 从根本上不同于图形设备接口 (GDI)和GDI+API,要求以不同的方式处理编程的许多方面。本主题简要概述了两个主要领域的主要差异,包括作为渲染器和作为框架的差异。​

2022-09-17 19:37:31 873

翻译 在 C# 中约束并发线程

并行性可以极大地提高应用程序的整体性能,但如果误用,可能会导致比它解决的问题更多的问题。这些模式允许您使用有限数量的线程来处理一批作业。您应该选择哪一种取决于您生成任务的方式——您是否预先了解它们,或者它们是在您已经在处理早期任务时动态创建的?您是在单个线程上按顺序生成这些任务,还是多个线程能够即时生成额外的工作项?

2022-09-15 14:28:36 736

翻译 并行处理您的列表以使其在 .NET 中更快

数据并行是指对源集合或数组中的元素同时(即并行)执行相同操作的场景。在数据并行操作中,源集合是分区的,以便多个线程可以同时对不同的段进行操作。

2022-09-15 14:07:58 358

转载 C# / WPF 基础知识

http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/Catalog0470__Windows-Presentation-Foundation.htm

2022-09-13 19:56:36 816

翻译 什么是SynchronizationContext?

在这篇文章中,我解释了SynchronizationContext它是什么以及它试图解决什么问题。我还更深入地探讨了为什么我们需要这个结构以及 .Net 如何在后台处理这些问题。

2022-09-05 19:44:27 1616

原创 WPF 使用Squirrel自动更新应用

本文简单的介绍了如何使用 Squirrel 来为 WPF 客户端 进行自动检查更新。

2022-09-03 20:13:21 2183 3

转载 .NET 调整图片尺寸(Resize)各种方法

调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。

2022-08-25 10:56:22 635

转载 内存泄漏之DispatcherTimer

DispatcherTimer,但是如果一不小心就会发生内存泄漏,请看下面的Demo:

2022-08-18 17:29:39 698

原创 ​WPF CompositionTarget.Rendering和 DispatcherTimer​

CompositionTarget.Rendering和 DispatcherTimer​ 运用

2022-08-18 17:15:27 667

翻译 WPF ListBox自动滚动到最新行

WPF ListBox自动滚动到最新行

2022-08-18 15:48:22 2033 2

翻译 C# – 正确锁定列表在多线程场景中

正确锁定列表在多线程场景中

2022-08-06 10:28:16 1149

翻译 C# 中的同步、异步和多线程

异步中的队列执行和并发执行

2022-08-06 09:42:15 1185

转载 WPF防止事件连续多次响应

在处理一些交互事件的时候,很容易出现单击或双击,不小心触发了多次的问题。目前没有找到很好的处理办法。于是想着自己封装一个类。

2022-08-03 16:52:03 1714

翻译 如何在与 WPF 文本框的触摸交互中显示触摸键盘

针对新版框架的 WPF 应用程序支持触摸键盘的自动调用和解除,与 Windows 10 上的 UWP 应用程序的行为相匹配。这意味着您无需对新应用程序进行任何额外的更改即可支持触摸键盘.

2022-07-26 16:44:45 1361

转载 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分)

深耕 WPF 开发的各位程序员大大们一定避不开使用 Dispatcher。跨线程访问 UI 当然免不了用到它,将某个任务延迟到当前任务之后执行也会用到它。Dispatcher.Invoke、Dispatcher.BeginInvoke 是过去大家经常使用的方法,而 .NET Framework 4.5 中微软为我们带来了 Dispatcher.InvokeAsync 方法,它和前面两个有何不同?...

2022-07-20 14:54:07 1830

翻译 WPF Dispatcher.BeginInvoke 和 Dispatcher.InvokeAsync 之间的区别

​在.NET 4.5中,向 Dispatcher 类添加了InvokeAsync 方法。该方法与传统的BeginInvoke 方法类似,但异常处理有很大不同。因此,这不仅仅是使用新的 InvokeAsync 方法而不是旧的 BeginInvoke 方法的问题,您必须根据处理异常的方式来不同地使用它​...

2022-07-20 14:29:35 766

翻译 Task.Run 和 Task.Factory.StartNew 之间的区别

在本文中,我们了解了Task.Run和Task.Factory.StartNew之间的区别。我们已经讨论了一些高级用例,哪些StartNew是可行的选择,否则Task.Run通常是推荐的方法。

2022-07-19 10:05:32 3021

翻译 删除async void

我再说一遍:async await很棒。与每个伟大的工具一样,我们有责任了解如何最好地使用它。

2022-07-13 16:36:22 130

WPF Performance Profiling Tools

WPF 提供了一套性能分析工具,允许您分析应用程序的运行时行为并确定可以应用的性能优化类型。下表列出了 Windows SDK 工具 WPFPerf 中包含的五个性能分析工具: 本主题包含以下部分。 使用性能分析工具 事件追踪 穿孔器 ETW 跟踪查看器 视觉分析器 工作集分析器 其他性能工具资源 相关话题 具体内容见链接:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-3.0/aa969767(v=vs.85)?redirectedfrom=MSDN

2022-08-19

ffmediaelement环境搭建是用到的dll文件

这是有关如何开始的快速指南。 打开 Visual Studio(推荐 v2019 预览版),并创建一个新的 WPF 应用程序。目标框架必须是 5.0 或更高版本。 从包管理器控制台安装 NuGet 包:PM> Install-Package FFME.Windows 您需要 FFmpeg共享二进制文件(64 位或 32 位,具体取决于您的应用程序的目标架构)。构建您自己的版本或从FFmpeg Windows 下载下载兼容的版本。 您的 FFmpeg 构建应该有一个bin包含 3 个 exe文件和一些 dll 文件的文件夹。将所有这些文件复制到一个文件夹中,例如c:\ffmpeg 在应用程序的启动代码(Main方法)中,设置Unosquare.FFME.Library.FFmpegDirectory = @"c:\ffmpeg";. 将 FFMEMediaElement控件用作任何其他 WPF 控件。 具体见:https://github.com/jasonfint/ffmediaelement

2022-08-11

Defender Control 是一款小型便携式免费软件,可让您在 Windows 10 中完全禁用 Microsoft De

从 Vista 开始,Microsoft Defender 包含在 Windows 中。它是一个在后台运行的小软件,可帮助保护您的计算机免受病毒、间谍软件和其他恶意软件(恶意软件)的侵害可能不需要的软件。一些间谍软件保护总比没有好,它是内置的并且是免费的!但是……如果您已经在运行提供强大的反恶意软件保护的东西,防御者可能会浪费宝贵的资源,没有必要一次运行多个应用程序。 Windows Vista 及更高版本中所有 Defender 版本的问题在于它已集成到操作系统中,并且默认安装时没有可见或隐藏的卸载选项。许多人正在寻找禁用或从系统中删除它的方法,因为他们更喜欢使用其他软件,例如在 Windows 8 和 10 上,您无法再完全关闭 Microsoft Defender,单击 Microsoft Defender 中的设置会打开控制面板新的 Windows 设置应用程序中的程序。您可以暂时关闭程序的实时保护,但如果它关闭一段时间,Windows 会自动将其重新打开。目前尚不清楚微软为何决定改变 Microsoft Defender 在这方面的行为。但是可以肯定的是,它会惹恼想要在他们

2022-03-25

WPF炫酷旋转按钮样式

一个具有可配置属性的自定义旋转拨号控件,包括标签、主要刻度和主要刻度增量。它包括一个简单的演示应用程序,其中包含使用中的旋转拨号控制示例:

2022-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除