自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WPF控件模型相關(guān)概念解析

開發(fā) 開發(fā)工具
WPF控件模型的創(chuàng)建可以從三個模式實現(xiàn),主要包括:從 UserControl 派生;從 Control 派生以及從 FrameworkElement 派生等等。

WPF是一個專門用來作用于圖形界面顯示的開發(fā)工具。我們可以使用它輕松創(chuàng)建出精美的圖形界面。WPF 提供了三種用于創(chuàng)建控件的WPF控件模型,每一種都提供了一組不同的功能和靈活性級別。開始編寫新控件之前,應(yīng)先了解這些模型,這一點至關(guān)重要。#t#

WPF控件模型1。從 UserControl 派生

在 WPF 中創(chuàng)建控件的最簡單的方法是創(chuàng)建 UserControl 的子類。UserControl 的開發(fā)模型非常類似于 WPF 中用于應(yīng)用程序開發(fā)的模型:創(chuàng)建可視元素,使用可擴展應(yīng)用程序標(biāo)記語言 (XAML) 為這些可視元素指定名稱并引用事件處理程序。然后,可以通過代碼引用已命名的元素。

如果生成正確,UserControl 可以利用豐富內(nèi)容、樣式和觸發(fā)器的優(yōu)點。但是,若要支持模板,需要從 Control 派生以創(chuàng)建自定義 Control。

從 UserControl 派生的優(yōu)點

在以下情況下可考慮從 UserControl 派生:

想要以類似于生成應(yīng)用程序的方式生成控件。

控件僅由現(xiàn)有組件組成。

不需要支持復(fù)雜自定義項。

 

WPF控件模型2。從 Control 派生

從 Control 類派生是大多數(shù)現(xiàn)有 WPF 控件使用的模型。自定義 Control 旨在使用模板將運算邏輯與可視表示形式分開。盡管生成自定義 Control 不像生成 UserControl 那樣簡單,但自定義 Control 可提供最大的靈活性。

從 Control 派生的優(yōu)點
如果您符合以下一種或多種情況,請考慮從 Control 派生,而不使用 UserControl 類:

希望通過 ControlTemplate 自定義控件的外觀。

希望控件支持不同主題。

 

 

WPF控件模型3。從 FrameworkElement 派生

從 UserControl 和 Control 派生的控件依賴于組合現(xiàn)有元素。有時自定義組件需要的精確控制超過簡單的元素組合可提供的功能。對于這些情況,使組件基于 FrameworkElement 才是正確的選擇。生成基于 FrameworkElement 的組件有兩種標(biāo)準(zhǔn)方法:直接呈現(xiàn)和自定義元素組合。

直接呈現(xiàn)涉及的操作包括:重寫 FrameworkElement 的 OnRender 方法,并提供顯式定義組件視覺效果的 DrawingContext 操作。此方法由 Image 和 Border 使用。自定義元素組合涉及的操作包括實例化和使用 Visual 類型的對象組合組件的外觀。有關(guān)示例,請參見使用 DrawingVisual 對象。Track 是 WPF 中使用自定義元素組合的控件示例。也可以在同一控件中混合使用直接呈現(xiàn)和自定義元素組合。

從 FrameworkElement 派生的優(yōu)點

如果以下一種或多種情況適用,請考慮從 FrameworkElement 派生:

想要對控件的外觀進行精確控制,而不僅僅是簡單的元素組合提供的內(nèi)容。

想要通過定義自己的呈現(xiàn)邏輯來定義控件的外觀。

想要以一種 UserControl 和 Control 之外的新穎方式組合現(xiàn)有元素。

以上就是有關(guān)WPF控件模型的相關(guān)概念解析。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-23 15:27:34

WPF圖形系統(tǒng)

2009-12-28 16:20:50

WPF內(nèi)嵌樣式

2009-12-29 09:54:27

WPF文字布局

2009-12-25 11:23:43

WPF命令模型

2009-12-23 17:18:45

WPF Attache

2009-12-23 18:16:35

WPF布局控件

2009-12-24 15:43:17

WPF控件相對位置

2009-12-15 15:55:43

Ruby模塊

2009-12-25 16:58:23

WPF名稱范圍

2009-12-28 17:54:49

WPF嵌入式資源

2010-01-06 18:21:24

2012-02-08 10:16:43

WPF

2009-12-31 16:44:53

Silverlight

2010-02-02 16:15:38

C++變量聲明

2010-01-19 15:08:18

VB.NET對象成員

2010-02-01 11:01:30

C++靜態(tài)構(gòu)造函數(shù)

2009-12-23 17:01:09

WPF Command

2010-01-28 16:45:44

Android單線程模

2010-01-13 16:26:57

VB.NET通知控件

2017-01-13 10:51:13

RPC模型解析
點贊
收藏

51CTO技術(shù)棧公眾號