《Programming WPF》翻譯 第9章 1.自訂控制項基礎

來源:互聯網
上載者:User

在寫一個自訂控制項之前,你需要問的第一個問題是,我真的需要一個自訂控制項嗎?一個寫自訂控制項的主要原因是為了使用者介面技術專家可以修改控制項的外觀,但是正如我們在前些章看到的,內容模型和模板意味著這通常是不必要的。WPF提供了一個先進的按照規模的定製技術,你應該記住這些——當考慮寫一個自訂控制項時。

  1. 使用屬性修改一個已有控制項的外觀
  2. 組合已有的一些控制項
  3. 將內容嵌入已有控制項
  4. 使用模板代替一個已有控制項
  5. 建立一個自訂控制項或其他自訂元素

這個順序提供了漸增的能力等級,以每一層級上輕微的額外成效為交換。在這些簡單的情形中,你可以通過設定屬性來調整一個內嵌控制項的行為和外觀以滿足你對的需求。下一步是將控制項編譯在一起,形成一個更強大的整體。你可以通過將內容嵌入另一個控制項的方式,把這個合成物帶入到下一步驟。你可以使用一個模板完全替換外觀,正如第5章所描述的。一旦技術1-4都沒有滿足你的需求,編寫一個自訂的元素就像自訂控制項,看上去像是一個答案。

是否需要寫一個新的可視化元素類型,一個重要的指示是,你是否計劃添加一個新的API特性。即使在這種情形,你應該仔細的考慮要寫哪一種自訂元素類型,控制項並不是唯一的元素種類。通過寫一個底層的組件,並整合到已知控制項中的外觀中,你可以得到更多的彈性。例如,大量的使WPF彈性化的元素,如布局類和Shapes,派生於FrameworkElement,實際上並不是控制項——它們不是從Control基類派生的。

如果你確定一個自訂元素使最好的進行辦法,你需要做完大量的設計步驟。首先,你必須挑選出基類。它會派生自FrameworkElement,Control,或WPF提供的其它基底類型之一嗎?然後你必須定義API,決定你的組件哪個屬性,事件和命令。最後,如果你的新元素提供了與內嵌組件相同的彈性,你需要注意元素和其模板間的介面。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.