AvaloniaTextBox: 真正生效的是模板里的 Border
环境版本:Avalonia 12.0.4,.NET 10 最近在给 ArturiaLink 的短链输入框做共享样式。目标很简单:希望项目里所有输入框都可以通过一行: 123<TextBox Classes="input" PlaceholderText="https://..."...
环境版本:Avalonia 12.0.4,.NET 10 最近在给 ArturiaLink 的短链输入框做共享样式。目标很简单:希望项目里所有输入框都可以通过一行: 123<TextBox Classes="input" PlaceholderText="https://..."...
在桌面应用开发中,自定义标题栏是一个非常高频的需求。为了实现无缝的一体化视觉设计,我们往往需要隐藏系统自带的标题栏,并自行绘制最小化、最大化和关闭按钮。 然而,标题栏不仅承载视觉,还牵涉到窗口拖拽、双击最大化、边缘贴边等一系列底层的操作系统行为。本文将基于真实的桌面项目实践,介绍...
客户端的 Token 要防偷,服务端的 HTTPS 不能省。 写客户端和服务端协作的软件时,访问令牌(Token)安全是最基本的问题。拿我们正在做的短链引擎项目来说,客户端请求接口时必须带上 Token。 那么,这个 Token 到底有没有必要加密? 答案是:必须加密,但两端的防...
准备 C# 面试时,我复习到 struct,顺手查了下 C# 10 的 record-struct。结果这一查,从 record 的 with 关键字一路追到了函数式编程,最后还搞明白了链式编程和函数式编程到底是什么关系。 ✦ record 和 with 表达式record 类型...
✦ 为什么需要 Record在 record 登场之前,C# 开发者定义一个纯数据载体(比如 dto、配置项、DDD 值对象)时,面临一个尴尬的现实:reference-equality 是默认行为。 两个对象哪怕每个字段都一模一样,只要它们在堆上的地址不同,== 就返回 fal...