- 朋友圈,提供博客收录、文章聚合展示等功能,欢迎来这里发现有趣的博客并尝试与博主成为朋友!如果你拥有一个独立博客,就赶快「申请加入」吧,逾 9 位博友正在等你哦!
【CSharp】在WPF应用程序中捕获全局异常
前言 在WPF(Windows Presentation Foundation)应用程序中捕获全局异常,通常可以通过以下几个步骤来实现: Application.DispatcherUnhandledException事件: 这是WPF中用于捕获未处理异常的主要事件。你可以在App.xaml.cs文件中订阅这个事件来处理全局异常。 public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException); } private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { // 处理异常,例如显示错误消息 // 可以在这里记录日志,或者显示一个友好的错误消息给用户 // 注意:不要在这里直接处理异常,否则异常不会被外部的调试器捕获 // e.Handled = true; // 如果你想要阻止异常继续传播,可以设置这个属性为true // 记录异常信息 // LogException...
10分钟搭建一个本地化图片处理工具——Reubah,拒绝隐私泄露!|好玩儿的Docker项目
1. 唠嗑 日常工作的时候经常会遇到需要处理一些图片的问题(比如压缩图片,转换格式啊之类的),虽然网上随便一搜能搜索到很多可以直接使用的工具,但是会有小伙伴会担心隐私泄露。 这一期就和大家分享一个刚开发不久的可以自己搭建的方便处理文档/图片压缩,格式转换之类的小工具。 2. reubah主要功能 目前的功能特点: 开源免费,不存储你的数据 支持大多数的图片转换,压缩 Docker一键部署,方便升级和维护 支持部分文档的格式转换 支持批量处理 2.1 图片处理 1.11 MB压完之后是141.62 KB 压缩完的画质感觉差别不是很大: 背景去除的功能目前还在开发中, 2.2 文件处理 2.3 批量处理 3. 相关地址 官方GitHub地址:https://github.com/dendianugerah/reubah (全新项目,目前145个star,欢迎大家去给项目点星星!) 4. 搭建环境 服务器:咕咕这边用的腾讯云轻量应用服务器,建议服务器内存1G以上,当然你也可以选择其他高性价比的服务器。 系统:Debian 11 (DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~) 安装好 Docker、Docker-compose(相关脚本) 【必需】域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程) 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址) 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程) 5. 搭建视频(过俩天补充 = =) 5.1 YouTube 视频地址: 5.2 哔哩哔哩 哔哩哔哩: 6. 搭建方式 6.1 安装 Docker 与 Nginx Proxy Manager 可以直接参考这篇内容: https://blog.laod...
瓦屋山遛娃之旅
20241221-瓦屋山溜娃之旅
1Panel 自建邮局 - Docker Mailserver
本文讨论了自建邮局的复杂性和推荐使用托管服务,如Cloudflare和阿里企业邮箱。自建邮局存在配置复杂、维护成本高和送达率不稳定等缺陷。文章提供了通过1Panel面板部署Docker Mailserver的详细步骤,包括申请TLS证书、安装Mailserver、配置TLS、创建账户和生成DKIM记录。
1Panel 推送 SSL 证书到阿里云、腾讯云
随着证书有效期缩短,使用CDN的站点面临频繁更新证书的挑战。1Panel在v1.10.12-lts中引入自动续签证书后允许用户自定义脚本的功能,简化了证书管理。通过Docker构建的aliyun-tccli镜像,用户可以轻松将SSL证书推送到阿里云和腾讯云的CDN服务,减少管理复杂性和成本。
小说阅读器容器化部署
本文介绍了如何容器化部署一个小说阅读器,并提供了基本的使用步骤。首先,用户需要在指定目录下创建相应的文件夹,并配置 `compose.yaml` 文件以设置容器的参数,包括端口映射、存储路径以及用户限制等。完成配置后,通过容器管理工具启动容器,并可通过浏览器访问服务。用户首次访问需注册账号,通过邀请码激活服务。注册后,用户可以导入书源文件并搜索书籍,此外,文中还提到了一些管理功能和配置选项,包括搜索线程设置和管理模式。需要注意的是,书源文件并不免费提供,需通过指定渠道获取。
WordPress 容器化部署全教程
本文提供了详细的步骤指南,介绍如何通过 `docker compose` 在支持 Docker 的服务器上部署 WordPress 博客系统。尽管示例环境是群晖的 DSM7 系统,教程适用于多种服务器,包括其他 NAS 和 Linux 发行版。部署步骤首先涉及创建一个 MySQL 容器,设置数据库和用户权限,然后再创建一个 WordPress 容器并配置数据库连接。文章还简单介绍了两个重要的 WordPress 插件,
快速捕捉灵感!十分钟搭建一个轻量级笔记应用——Blinko|好玩儿的Docker项目
1. 唠嗑 今天和大家分享一个和之前的【好玩儿的Docker项目】10分钟搭建一个碎片化知识卡片管理工具——Memos 有点像的项目——Blinko。 官方介绍,Blinko 是一个创新的开源项目,旨在帮助那些希望快速捕捉和组织瞬间想法的个人。 无论你是在捕捉想法、记录会议笔记,还是规划日程,Blinko 都提供了一种简单高效的方式来管理这一切。 利用Blinko,你可以随时随地创建、编辑和分享笔记,确保不会丢失任何宝贵的想法。 在尝试了众多B后,作者意识到自己对笔记的需求其实非常简单: 快速创建 便捷的标签管理 批量操作 自动清理已审阅的想法 方便反思日常记录 最重要的是,能够快速找到特定的笔记,即使在积累了大量内容之后。这一洞察促成了Blinko的诞生。 Blinko的目标是帮助用户轻松捕捉和管理他们的想法,设计上分为两个核心部分:“Blinko”和“Notes”。 “Blinko(闪念)”部分旨在捕捉灵感闪现。用户可以即时记录突发奇想,而无需担心格式或复杂操作。这些记录可以设置为定期自动清除,以确保内容不会过度堆积,从而保持该部分整洁高效。 “Notes”部分提供更有组织性的管理系统,用户可以通过标签对笔记进行分类,并利用批量操作轻松整理和归类大量笔记。 为了帮助用户更有效地回顾和利用他们的笔记,Blinko还集成了一项AI驱动的搜索功能(目前仅支持OpenAI)。无论录入了多少内容,用户都可以依靠智能搜索在短时间内找到相关笔记,从而节省浏览时间。这不仅提高了信息查找效率,还根据关键词推荐相关记录,帮助用户发现其笔记中的隐藏联系和灵感。 Blinko设计背后的主要意图是简化笔记过程,让用户专注于内容本身,而不被繁琐的管理任务所困扰。无论是捕捉突如其来的灵感还是系统性地整理笔记,Blinko旨在提供一种智能、流畅的记录体验。 2. Blinko主要功能 目前的功能特点:...
【CSharp】在WPF程序中防止触笔(Stylus)输入
前言 在WPF中使用WebView2时,发现无法在触摸屏中对WebView2打开的网页进行滑动操作,经过研究发现,WPF内置的触笔和触摸支持与WebView2中的触笔和触摸存在冲突,需要禁用掉WPF内置的触笔和触摸支持才能解决。 解决方案 方法一 使用AppContextSwitchOverrides禁用WPF内置的触笔和触摸支持 在你的应用程序的app.config文件中添加以下配置,可以关闭WPF内置的实时触摸(RealTimeStylus)支持,从而改用Windows触摸消息(WM_TOUCH): <configuration> <runtime> <AppContextSwitchOverrides value="Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true" /> </runtime> </configuration> 方法二 使用反射禁用WPF的RealTimeStylus public static void DisableWPFTabletSupport() { // Get a collection of the tablet devices for this window. TabletDeviceCollection devices = System.Windows.Input.Tablet.TabletDevices; if (devices.Count > 0) { // Get the Type of InputManager. Type inputManagerType = typeof(System.Windows.Input.InputManager); ...