雖然 Windows Presentation Foundation 中的控制項模型非常多,但仍不可能提供需要的每一種控制項。這時候,控制項編寫就派上用場了。在本文中,我將向您講述如何使用 Windows® Presentation Foundation 自訂現有控制項,以及如何為您的項目建立全新的控制項(或元素)。
在開發一個自訂控制項之前,應該先問問自己是否真的需要它。在 Windows Presentation Foundation 中,組合、樣式和模板化功能使您可以自訂現有控制項,這是以前的技術所無法比擬的。在決定建立新控制項之前,我們先快速講述一下上述三種自訂控制項的方法。
使用組合
建立群組控制項是常見要求。所謂群組控制項是指由一個以上控制群組成的控制項。假定您有一個用於啟動視頻播放的 Play 按鈕。XAML 和控制項如圖 1 所示。
Figure 1 簡單的 Play 控制項
<StackPanel> <Button Height=”50” Width=”50” Content=”Play” /> <Polygon HorizontalAlignment=”Center” Points=”0,0 0,26 17,13” Fill=”Black” /></StackPanel>
您需要能夠得到 play 表徵圖並將它放置在該按鈕上。您可以使用組合將 XAML 元素實際嵌入其他 XAML 元素內。例如,您可以通過更改 XAML 來建立標籤和表徵圖(作為該按鈕的內容)。將這些元素放置在該按鈕內的容器(此處為 StackPanel)中,這樣可將它們分配給 Button 類的 Content 屬性,如圖 2 中所示。這樣得到的按鈕會象任何其他按鈕一樣正常工作,但它裡面卻有您自己的內容。
Figure 2 按鈕中的所有內容
<StackPanel> <Button Height=”50” Width=”50”> <StackPanel> <TextBlock>Play</TextBlock> <Polygon Points=”0,0 0,26 17,13” Fill=”Black” /> </StackPanel> </Button></StackPanel>
使用組合來建立此類控制項非常簡單。與 Windows Forms、Visual Basic® 6.0 和 MFC 等示範技術中的控制項不同,大多數群組控制項都是其他控制項的容器。當您真正需要的只是一個群組控制項時,就不必編寫自訂控制項。