容器和內(nèi)容控件(ContentControl)組成。布局容器是指Grid、StackPanel等繼承自Panel,可以擁有多個子元素的類。與此相對,ContentControl則只能包含單個子元素。
在UWP中,Button、CheckBox、ScrollViewer、Frame、ToolTip等都繼承自ContentControl,其它控件則不是在ContentTemplate中使用ContentControl,就是被ContentControl使用,可以說ContentControl是UWP中最重要的控件。
ContentControl的定義并不復雜,它主要包含這四個屬性:Content,ContentTemplate,ContentTemplateSelector,ContentTransitions。
1. Content
Content支持任何類型,它的值即ContentControl要顯示的對象??梢詫ontent的類型大致分為兩大類:
未繼承自UIElement的類型: ContentControl調(diào)用這些類的ToString()方法獲取文本然后顯示。
繼承自UIElement的類型: ContentControl直接將它顯示在UI上。
<StackPanel> <ContentControl> <AdaptiveTrigger /> </ContentControl> <ContentControl> <Rectangle Height="50" Fill="Red" /> </ContentControl></StackPanel>
2. ContentTemplate
要將ContentControl的內(nèi)容按自己的想法顯示出來,可以使用ContentTemplate屬性public DataTemplate ContentTemplate { get; set; })
。DataTemplate是定義如何顯示綁定的數(shù)據(jù)對象的XAML標記。DataTemplate定義的XAML塊中元素的DataConte