WPF 自訂控制項開發入門:從「真的需要嗎?」到基類選擇與 API 設計
第一問:我真的需要寫自訂控制項嗎? WPF 提供強大的客製化階梯,由低到高、成本由小到大: 設定既有控制項屬性調整外觀行為。 組合多個既有控制項形成複合元件。
WPF 自訂元素基類選擇指南:FrameworkElement、Control、Panel、Decorator 怎麼選?
所有自訂元素的共同祖先:FrameworkElement 無論選哪個基類,最終都會直接或間接繼承 FrameworkElement,獲得路由事件、進階屬性系統、
WPF 自訂控制項的 API 設計:相依性屬性、路由事件與命令實作全解析
為什麼選擇相依性屬性? WPF 元素多數功能透過屬性暴露,相依性屬性(DP)系統提供標準 CLR 屬性無法比擬的能力: 值繼承:父元素設定可自動傳播給子元素(
WPF 自訂控制項與模板的協定:屬性別名、佔位符與附屬屬性標記
控制項負責行為,模板負責外觀 繼承 FrameworkElement 的元素自行繪製;但繼承 Control 的控制項應將外觀委派給 ControlTempla
WPF 自訂控制項的預設視覺化:generic.xaml 與主題樣式機制
為什麼需要預設視覺化? 開發者應該能直接使用控制項,而不必非得提供自訂樣式。控制項必須「開箱即用」,提供一組合理的預設外觀。 generic.xaml:預設樣
《Programming WPF》第 9 章總結:自訂控制項開發的關鍵里程碑
何時才需要撰寫自訂控制項? 只有當現有內建控制項都無法提供你所需的底層行為時,才應該動手寫自訂控制項。這是 WPF 靈活的組合與模板機制無法滿足時的最後手段。
薛丁格的貓在 .NET 4.1 中的量子糾纏實作:StringOr 與 SchrodingOr 新基類預覽
從薛丁格的貓說起:量子疊加態的程式碼隱喻 物理學家爾文·薛丁格(Erwin Schrödinger)曾提出一個著名的思想實驗:一隻貓被關在密室中,其生死取決於一
基於 WCF 的無人終端遠端監控架構演進實錄
專案需遠端即時監控多台無人終端運行狀態,並支援下發控制指令。經過三輪架構重構,最終採用「服務端裝載於控制端、終端為輕量 Client」的雙工通訊模型。本文記錄演
PowerShell 實現組建版本號自動遞增腳本
在中大型專案的自動化建構流程中,期望每次 Build 自動遞增版本號,而非依賴 .NET 預設的 `AssemblyVersion(1.0.*)` 規則。本文提
CodeTimer:高精度性能計數器 (CPU 週期/GC 代別統計/預熱/JIT 優化)
Jeffrey Richter 在 .NET 技術大會演示的 **CodeTimer** 簡單而強大:測量執行時間、CPU 時鐘週期、各代 GC 回收次數。本文
LINQS 0.0.6 實戰:領域模型描述數據庫並生成建庫腳本與物理庫
LINQS (Language INtegrated Query for Schema) 是一個以 C# 語法**強類型描述數據庫模型**,並能生成 SQL 建
魅族 M8 SDK 開發初體驗 (C++ MZFC / .NET CF 双模式實測)
魅族 M8 (Windows CE 6.0) 發布 SDK,提供 **C++ MZFC 框架** 與 **.NET Compact Framework 2.0*
專案常用架構對比:動軟三層 vs NHibernate 三層結構
從傳統代碼生成三層 (動軟) 遷移至 ORM 驅動的領域模型三層 (NHibernate),本文對比兩種架構在**變更成本、職責劃分、數據訪問方式**上的差異,
ADO.NET 對象模型入門 (DataSet/DataTable/DataAdapter/離線架構)
ADO.NET 採用 **離線架構** — 資料從資料庫取出後緩存在本地 `DataSet`,無需持續連線。理解核心對象模型是高效資料開發的前提。 核心對象圖
使用 ANTLR 實現命令列參數解析器 (詞法/語法/AST/Walker 完整流程)
命令列參數解析無統一標準,Unix 風格 (`-v`, `--verbose`) 與 Windows 風格 (`/v`, `-v`) 並存。.NET `Main
.NET 4.0 代碼契約組件深度解析 (靜態/動態驗證/介面契約)
.NET 4.0 將代碼契約整合進 `mscorlib.dll` (位於 `System.Diagnostics.Contracts`),提供**編譯時靜態分析
WPF 筆記:Hello WPF 基礎架構 (Application/Window/STAThread/專案結構)
WPF 應用程式進入點、核心組件引用、Application/Window 模型、XAML/Code-behind 分離、VS 自動生成代碼機制 — 奠定所有