原创 [WPF] 使用 Shazzam Shader Editor 編寫一個 Lighten Effect

之前在一篇文章(實現兩個任天堂 Switch 的加載動畫)裏爲了實現不同亮度的 Grid,使用了一個 LightenConverter 類,但是它只能處理 SolidColorBrush。爲了可以應用在更多場合,這篇文章自己寫一個 Eff

原创 [WPF] 用 OpacityMask 模仿 UWP 的 Text Shimmer 動畫

1. UWP 的 Text Shimmer 動畫 在 UWP 的 Windows Composition Samples 中有一個 Text Shimmer 動畫,它用於展示如何使用 Composition Light。從下面的 Gif 可

原创 用 WinUI 3 開發了一個摸魚應用

1. 開發了一個摸魚 App 我做了一個簡單的 App:摸魚。 如上圖所示,這個 App 就只有一個按鈕,點擊後假裝開始 Windows Update,然後用戶就可以光明正大地摸魚了。 不要小看摸魚,所有天才的點子都不是敲鍵盤時激發的。

原创 [WPF] 實現兩個任天堂 Switch 的加載動畫

寫了兩個 Switch 的加載動畫,第一個是 Swtich 最常見那個 Loading 動畫: 其中拆分文字用到了 之前一篇文章 裏提到的用 ItemsControl 拆分的方案,文字逐個反轉的動畫也用了那篇文章裏提到的 TimeSpan

原创 從一個小Bug,到Azure DevOps

1. 一個小Bug 最近和同事提起一個幾年前的 Bug,那是一個很小很小的 Bug,沒什麼技術含量。那時候我剛入職,正好公司賣了一款儀器到某個國家,但是那邊說配套的軟件運行不起來,一打開就報錯。經過排查發現出錯的代碼很簡單,大致是這樣: p

原创 3D 穿梭效果?使用 UWP 也能搞定

昨天 ChokCoco 大佬搞了個 3D 穿梭效果出來,具體可見這裏: 3D 穿梭效果?使用 CSS 輕鬆搞定 這個效果太神奇了,他還問我能不能用 WPF 搞出來,因爲我完全沒用過 WPF 的 3D,我第一反應是“這太難爲我了”。 晚上回家

原创 [WPF] 僅用 Rectangle 實現圓柱形進度條

本文將簡單介紹如何僅使用 Rectangle 實現圓柱形進度條,成果如上圖所示。 圓柱形進度條不難實現,不過有趣的是它完全由代表矩形的 Rectangle 組成,這稍微有點反直覺。 首先我們需要重溫一些基礎知識:Rectangle 顯示帶

原创 [WPF] 製作一個彩虹按鈕

繼續玩玩彩虹文字,這次用 LinearGradientBrush 並且製作成按鈕,雖然沒技術含量反而有些實用,這就是返璞歸真嗎。 首先來回憶下 LinearGradientBrush 的用法。LinearGradientBrush 表示線性

原创 [WPF] 玩玩彩虹文字及動畫

1. 前言 興致來了玩玩 WPF 的彩虹文字。不是用 LinearGradientBrush 製作漸變色那種,是指每個文字獨立顏色那種彩虹文字。雖然沒什麼實用價值,但希望這篇文章裏用 ItemsControl 拆分文字,以及用工具類提供遞增

原创 [WPF] 使用三種方式實現弧形進度條

1. 需求 前天看到有人問弧形進度條怎麼做,我模仿了一下,成果如下圖所示: 當時我第一反應是可以用 Microsoft.Toolkit.Uwp.UI.Controls 裏的 RadialGauge 實現,雖然這是個 UWP 的控件,不過代

原创 [WPF] 在 Windows 11 中處理 WindowChrome 的圓角

1. Windows 11 的圓角 在直角統治了微軟的 UI 設計多年以後,微軟突然把直角罵了一頓,說還是圓角好看,於是 Windows 11 隨處都可看到圓角設計。Windows 11 使用 3 個級別的圓角,具體取決於要應用圓角的 UI

原创 [WPF] 使用 MVVM Toolkit 構建 MVVM 程序

1. 什麼是 MVVM Toolkit 模型-視圖-視圖模型 (MVVM) 是用於解耦 UI 代碼和非 UI 代碼的 UI 體系結構設計模式。 藉助 MVVM,可以在 XAML 中以聲明方式定義 UI,並使用數據綁定標記將 UI 鏈接到包

原创 [WPF] 使用 Visual Studio App Center 持續監視應用使用情況和問題

1. 什麼是AppCenter Visual Studio App Center 是幾個常見移動開發和雲集成服務(如持續集成、持續交付和自動 UI 測試等服務)的集合。 這些 App Center 服務可以針對 iOS、Android、WP

原创 [Azure DevOps] 如何使用任務組

1. 使用 PowerShell 腳本 在上一篇文章中我們學會了怎麼使用擴展在編譯前實時更改版本號。有些情況下我們希望不適用擴展,例如喜歡發明輪子,或者根本沒有安裝擴展的權限。這時候我們可以自己寫 PowerShell 解決這個問題。 在

原创 [Azure DevOps] 編譯時自動修改版本號

1. 需求 在使用 Pipeline 自動化 CI/CD 流程的過程中,我還還需要自動修改程序集的版本號。這個功能 EdiWang 和LeoLaw 都寫文章講解過做法。不過我的項目基本都是 .Net Framework 項目,而且我的版本號