原创 wpf --自定義控件的transeform

 WPF不可以對非WPF控件進行Transform操作,但是對於我們自定義的控件仍然可以曝露消息進行一些Transform 操作,Transform 一般來說就是Matrix的實現,對於Matrix我們先來做道題:   已知圓心O(0,0

原创 WPF and Silverlight 學習筆記(十):WPF控件模型

 WPF對控件其類型的繼承方式如下     (其中綠色表示的類是抽象類,藍色表示的類是非抽象類)   控件內容模型   System.Windows.Controls.Control類:表示 用戶界面 (UI) 元素的基類,這些元素使用C

原创 WinForm控件開發總結(十二)-----讓控件處理導航鍵

 最近真的真的太忙了,以至於一個多月都沒喲更新我的blog。昨天晚上,一個網上的朋友看了我的ToolBox的文章,問我一個問題,他說如何讓ToolBox控件也能響應鍵盤操作,也就是用Up,down按鍵來選擇工具箱控件裏的Item,他添加了

原创 WinForm控件開發總結(八)-----爲屬性提供彈出式編輯對話框

 前幾篇文章我們一直在討論如何更方便的編輯複雜類型的屬性,在這個過程中我介紹了類型轉換器以及如何製作自己的類型轉換器來實現屬性值的串行化和實現子屬性的編輯。對於Scope這種級別的複雜屬性,一個類型轉換器就已經足夠了,但是對於更爲複雜的屬

原创 WinForm控件開發總結(十)-----爲屬性設置默認值

 本系列的前面幾篇文章講解了如何來定義屬性以及更有效的編輯屬性,接下來我要講一下控件屬性的默認值。如果我們希望自己開發的控件更易於被其它開發者使用,那麼提供默認值是非常值得的。      如果你爲屬性設定了默認值,那麼當開發者修改了屬性的

原创 WinForm控件開發總結(五)-----爲控件的複雜屬性提供類型轉換器

  上一篇文章我已經介紹了TypeConverterAttribute元數據的作用,本文將通過代碼向你展示具體的實現。在這個例子中,我要給控件添加一個複雜的屬性,這個屬性對這個控件沒有什麼功用,純粹是爲了演示,有些牽強附會了。      

原创 WPF and Silverlight 學習筆記(十六):WPF資源(Resource)(1)

一、什麼是資源 通常使用 WPF 資源作爲重用通常定義的對象和值的簡單方法。例如定義一種可以複用的單色的Brush對象,按鈕的背景及矩形的填充顏色均使用此Brush: 1: <Window x:Class="WPFResourc

原创 關於dll 中沒有可放置在工具箱上的組件的解決技巧

  我遇到的問題是再寫控件庫的擴展類時,沒有加public關鍵字,如  public class MyListView: System.Windows.Forms.ListView { 。。。。 } 如果去掉 public 也可以生成D

原创 WPF – 使用觸發器

 WPF提供了很重要的一個東西就是綁定Binding, 它幫助我們做了很多事情,這個我們在 WPF學習之綁定 這篇裏邊有講過。對於Binding我們可以設置其綁定對象,關係,並通過某種規則去驗證輸入,或者轉換值等等,這一切的背後是省去了很

原创 WinForm控件開發總結(六)-----控件屬性類型轉換器代碼詳解

 在上一篇文章,我爲控件添加一個一個複雜屬性,並且爲這個屬性的類型的編寫了一個類型轉換器,現在我們來看看這個類型轉換器的代碼,並解釋一下這些代碼的意義。       要實現一個類型轉換器,我們必須要重寫(override)四個方法:   

原创 WinForm控件開發總結(七)-----爲複雜屬性的子屬性提供編輯功能

 前面的幾篇文章中,我們給控件添加一個複雜的類型Scope,並且給它的類型提供的一個類型轉換器,現在我們可以在屬性瀏覽器中編輯它的值,並且它的值也被串行化的源代碼裏了。但是你有沒有發現,在屬性瀏覽器裏編輯這個屬性的值還是不太方便。因爲屬性

原创 WPF and Silverlight 學習筆記(二十):WPF數據綁定概述

 WPF數據綁定爲應用程序提供了一種表示數據和與數據交互的簡單而又一致的方法。元素能夠以公共語言運行庫 (CLR) 對象和 XML 的形式綁定到各種數據源中的數據。   一、數據綁定的基本概念:   數據綁定涉及到兩個方面:一個是綁定源,

原创 C#中自定義事件的觸發

 我想在窗體重繪時觸發自定義事件,我暈了。經歷了兩天的漿糊,我總算弄清楚了自定義事件不是我想象的那樣運作,可是就是我想象的模式,我也很暈……總的來說,我認爲事件可理解爲當對象狀態改變時,所觸發的過程,而爲了過程的靈活性,自定義事件用委託來

原创 WPF and Silverlight 學習筆記(三):WPF體系結構

 WPF的基礎的體系結構,所引用的Assembly如下圖所示:     關係圖中的PresentationFramework、PresentationCore 和 milcore是 WPF 的主要代碼部分。在這些組件中,只有一個是非託管組

原创 WPF and Silverlight 學習筆記(十三):依賴項屬性和路由事件

一、依賴項屬性(Dependency Property)   Windows Presentation Foundation (WPF) 提供了一組服務,這些服務可用於擴展公共語言運行時 (CLR) 屬性的功能。這些服務通常統稱爲 WPF