原创 [WPF自定義控件庫]以Button爲例談談如何模仿Aero2主題

1. 爲什麼選擇Aero2 除了以外觀爲賣點的控件庫,WPF的控件庫都默認使用“素顏”的外觀,然後再提供一些主題包。這樣做的最大好處是可以和原生控件或其它控件庫兼容,而且對於大部分人來說模仿原生的主題也比自己設計一套好看的UI容

原创 [WPF自定義控件]Window(窗體)的UI元素及行爲

1. 前言 本來打算寫一篇《自定義Window》的文章,但寫着寫着發覺內容太多,所以還是把使用WindowChrome自定義Window需要用到的部分基礎知識獨立出來,於是就形成了這篇文章。 無論是桌面編程還是日常使用,Windo

原创 [WPF自定義控件庫]瞭解如何自定義ItemsControl

1. 前言 對WPF來說ContentControl和ItemsControl是最重要的兩個控件。 顧名思義,ItemsControl表示可用於呈現一組Item的控件。大部分時候我們並不需要自定義ItemsControl,因爲WP

原创 [WPF自定義控件]從ContentControl開始入門自定義控件

1. 前言 我去年寫過一個在UWP自定義控件的系列博客,大部分的經驗都可以用在WPF中(只有一點小區別)。這篇文章的目的是快速入門自定義控件的開發,所以儘量精簡了篇幅,更深入的概念在以後介紹各控件的文章中實際運用到才介紹。 Con

原创 [WPF自定義控件] 開始一個自定義控件庫項目

1. 目標 我實現了一個自定義控件庫,並且打算用這個控件庫作例子寫一些博客。這個控件庫主要目標是用於教學,希望通過這些博客初學者可以學會爲自己或公司創建自定義控件,並且對WPF有更深入的瞭解。 控件庫已放在Github上,並且也以發佈

原创 [WPF]如何使用代碼創建DataTemplate(或者ControlTemplate)

1. 前言 上一篇文章([UWP]如何使用代碼創建DataTemplate(或者ControlTemplate))介紹了在UWP上的情況,這篇文章再稍微介紹在WPF上如何實現。 2. 使用FrameworkElementFactory

原创 [UWP]如何使用代碼創建DataTemplate(或者ControlTemplate)

1. 前言 在UWP中DataTemplate是一個十分重要的功能,並且幾乎無處不在,例如DataGrid中的DataGridTemplateColumn: <controls:DataGridTemplateColumn.CellT

原创 [WPF]何如在Win7使用Aero2主題

1. 問題 假設我在Windows10的環境新建一個4.6的WPF項目,添加一個ComboBox,並用Blend在這個ComboBox上右鍵“編輯模板”->“編輯副本”,Blend不僅幫我創建了模板,還會自動引用Presentatio

原创 [UWP 自定義控件]瞭解模板化控件(3):實現HeaderedContentControl

1. 概述 來看看這段XMAL: <StackPanel Width="300"> <TextBox Header="TextBox" /> <ComboBox Header="ComboBox" HorizontalAl

原创 [UWP 自定義控件]瞭解模板化控件(2.1):理解ContentControl

UWP的UI主要由佈局容器和內容控件(ContentControl)組成。佈局容器是指Grid、StackPanel等繼承自Panel,可以擁有多個子元素的類。與此相對,ContentControl則只能包含單個子元素。 在UWP中,Bu

原创 [UWP]附加屬性2:實現一個Canvas

5. 附加屬性實踐:自定義Canvas 附加屬性在UWP中是一個十分重要的組成部分,很多功能都依賴於附加屬性實現,典型的例子是常用的Grid和Canvas。通常附加屬性有三個使用場景:插入屬性、觸發行爲、當做緩存。可以參考以下提供的MyC

原创 [UWP 自定義控件]瞭解模板化控件(2):模仿ContentControl

ContentControl是最簡單的TemplatedControl,而且它在UWP出場頻率很高。ContentControl和Panel是VisualTree的基礎,可以說幾乎所有VisualTree上的UI元素的父節點中總有一個Co

原创 [UWP 自定義控件]瞭解模板化控件(4):TemplatePart

1. TemplatePart TemplatePart(部件)是指ControlTemplate中的命名元素。控件邏輯預期這些部分存在於ControlTemplate中,並且使用protected DependencyObject Ge

原创 [UWP]附加屬性1:概述

1. 什麼是附加屬性(attached property ) 附加屬性依賴屬性的一種特殊形式,常見的Grid.Row,Canvas.Left都是附加屬性。 /// <summary> // 從指定元素獲取 Left 依賴項屬性的值。 /

原创 [UWP]依賴屬性1:概述

1. 概述 依賴屬性(DependencyProperty)是UWP的核心概念,它是有DependencyObject提供的一種特殊的屬性。由於UWP的幾乎所有UI元素都是集成於DependencyObject的FramewordElem