1.概述
UWP允許開(kāi)發(fā)者通過(guò)兩種方式創(chuàng)建自定義的控件:UserControl和TemplatedControl(模板化控件)。這個(gè)主題主要講述如何創(chuàng)建和理解模板化控件,目標(biāo)是能理解模板化控件常見(jiàn)的知識(shí)點(diǎn),并且可以創(chuàng)建擴(kuò)展性良好的模板化控件。
1.1 ControlTemplate
UWP的控件有很多屬性,使用這些屬性可以為控件定制不同的外觀,例如將Button的Border變粗,Background改為紅色等,但通過(guò)這種改造控件,能做到的仍十分有限。
通過(guò)為控件賦予新的ControlTemplate,可以為控件創(chuàng)建全新的外觀。在下面的例子中,通過(guò)ControlTemplate將Button改成一個(gè)圓形按鈕。
<Button Content="Orginal" Margin="0,0,20,0"/><Button Content="Custom"> <Button.Template> <ControlTemplate TargetType="Button"> <Grid> <Ellipse Stroke="DarkOrange" StrokeThickness="3" Fill="LightPink"/> <ContentPresenter Margin="10,20" Foreground="White"/> </Grid> </ControlTemplate> </Button.Template></Button>
ControlTemplate的內(nèi)容是定義控件可視結(jié)構(gòu)的XAML。有時(shí),這段XAML的根元素包含VisualStateManager.VisualStateGroups附加屬性,用于定義不同狀態(tài)下控件的外觀變化。將ControlTemplate賦值到Control.Template即可改變控件的外觀。ControlTemplate的TargetType需要和使用它的控件匹配。
注意:UserC