首页

C# 或 WPF 中如何判断两个颜色是否近似

C# 或 WPF 中如何判断两个颜色是否近似

独立观察员 2023 年 5 月 13 日

一、算法

对于这种算法问题,直接询问 ChatGPT 是最快的:

 

也就是说有两种方法,一是计算两个颜色的 RGB 分量差之和,二是计算两个颜色的欧几里得距离,然后两者都是与给定的阈值进行比较,小于阈值即可认为是近似的。

本次主要用于 WPF,同时为了便于测试 Demo 的使用,我把 ChatGPT 给的方法整理了一下:

https://gitee.com/dlgcy/WPFTemplateLib/blob/master/WpfHelpers/MediaColorHelper[......]

全文阅读

WPF 路由事件和附加事件简明教程

WPF 路由事件和附加事件简明教程

独立观察员 2023 年 4 月 27 日

一、路由事件

1.1、定义

概括:可在 WPF 元素树中传递的事件,支持界面绑定处理方法。

代码:

public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(OwnerType));
/// <summary>
/// [路由事件]注释
/// </s[......]

全文阅读

WPF 消息传递简明教程

WPF 消息传递简明教程

独立观察员 2023 年 4 月 24 日

0、说明

参考:https://www.cnblogs.com/cdaniu/p/16852620.html 

使用包:CommunityToolkit.Mvvm(8.1.0)

 

1、订阅

让需要使用消息的 ViewModel 继承 ObservableRecipient,构造函数中设置 IsActive=true:

 

重写 OnActivated () 和 OnDeactivated () 方法:

#region 消息处理

/// <summary>
//[......]

全文阅读

在树莓派系统中安装和使用远程桌面软件 TightVNC

在树莓派系统中安装和使用远程桌面软件 TightVNC

独立观察员 2023 年 4 月 15 日

概述

本文介绍了如何在树莓派系统中安装和使用远程桌面(VNC 协议)软件 TightVNC;前几小结顺序介绍了一开始走的弯路,不过过程中体现了一些 Linux 的操作知识(比如:在树莓派中安装 Yum 并配置源、安装 imake 等),所以保留;之后使用软件商店成功安装了 TightVNC 的服务端软件(tightvncserver),其实通过包管理器安装也可以(在 “开机自启” 一节中有体现);然后介绍了 tightvncserver 的一些使用方式,如 开机自启、公网访问、客户端使用[......]

全文阅读

移动联通电信手机卡网速浅测

移动联通电信手机卡网速浅测

独立观察员 2023 年 4 月 2 日

时间:2023 年 4 月 2 日

地点:杭州市西湖区

软件:网速管家(测速网)

测试设置:

 

测试卡:移动(广东)、联通(江苏)、电信(杭州)

测试手机:备用机 - VIVO Z3

测试网络:4G

 

测试流程:每张卡分别与 沈阳联通、长春电信、四川移动 三个节点进行测速,由于只是心血来潮测试一下,就不追求严谨了,每个只测了一次。

 

以下是测试截图:

 

1、中国移动:

 

2、中国联通:

 

3、中国[......]

全文阅读

对于 C# 中 Task 的 StartNew 与 WhenAll 相互配合的实验

 

对于 C# 中 Task 的 StartNew 与 WhenAll 相互配合的实验

独立观察员 2023年3月28日

一、起因

最近写了一段需要等待几个任务Task)执行完毕的代码,其中任务是使用 Task.Factory.StartNew 的形式。为什么不用 Task.Run 呢?因为这些任务可能耗时较长,由于 Task 默认是基于线程池的,为了避免耗时较长的任务挤占了软件中其它任务的生存空间,所以采用了给 StartNew 方法传参 TaskCreationOptions.LongRunning,让它单独起一个线程而不是从线程池中取,形如下图:

 [......]

全文阅读

AMI BIOS 选项展示及部分解释 (by ChatGPT)

AMI BIOS 选项展示及部分解释 (by ChatGPT)

独立观察员 2023 年 3 月 19 日

一、Main 主页

 

二、Advanced 高级

 

2.1 CPU Configuration 处理器配置

 

[dlgcy]:Intel trusted execution technology 是什么?

[ChatGPT]:

Intel Trusted Execution Technology(TXT)是一项基于硬件的安全技术,旨在保护计算机系统免受恶意软件和未经授权的访问。TXT 可以确保系统启[......]

全文阅读

WPF 属性变动后的业务处理及恢复原始值的方法

WPF 属性变动后的业务处理及恢复原始值的方法

独立观察员 2023 年 2 月 26 日

一、前言

本文主要介绍在 WPF 中,当属性变动后,如何依据是哪个属性变动了,以及其变动的值的情况来进行相应业务处理的推荐的方式;以及如果要恢复属性的原始值,可以怎么做。

阅读本文需要有一定的 WPF 基础(WPF 绑定基类),如果是刚入门的朋友,可以先看看我以前写的文章《WPF 原生绑定和命令功能使用指南》。

 

二、INotifyPropertyChanging

之前定义绑定基类的时候,大家都是只关注 INotifyPropertyChanged 这个接口,也就是只会在绑定基[......]

全文阅读

移除 Win11 的文件夹标签功能

移除 Win11 的文件夹标签功能

独立观察员 2023 年 1 月 24 日

一、现象描述

现象:

 

也就是,之前一直在使用 QTTabBar 的,后来 Win11 不知道从哪个版本开始添加了自带的文件夹多标签功能,不好用还有 Bug,而且搞得 QTTabBar 也不太正常了还重复了。由于微软没有提供关闭的开关,所以只得自己寻找关闭的方法了。

 

以下是网友询问微软官方获得的回复(https://answers.microsoft.com/zh-hans/windows/forum/all/win11/ba2370a7-15fb-4ca5-a560-c[......]

全文阅读

WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

WPF 依赖注入之 Microsoft.Extensions.DependencyInjection

独立观察员 2023年1月8日

NuGet 包:

 

添加业务需要的接口及实现类:

 

在 App 中声明服务提供者对象,以及添加服务等:

 

核心代码:

/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
    /// <summary>
    /// 服务[......]

全文阅读