
WPF包含数据模板和控件模板,其中控件模板又包括ControlTemplate和ItemsPanelTemplate,这里讨论一下ControlTemplate。
其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观以及外观对外界刺激所做出的反应。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件。与Style不同,Style只能改变控件的已有属性值(比如颜色字体)来定制控件,但控件模板可以改变控件的内部结构(VisualTree,视觉树)来完成更为复杂的定制,比如我们可以定制这样的按钮:椭圆与渐变色相结合。
<UserControl x:Class="SilverlightApplication1.style2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/Expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWIDth="400"> <!--如何给一个控件加不同的样式:用现有的资源(GrID,Ellipse,GradIEntStop。。。。)定义一个样式--> <UserControl.Resources> <Style x:Key="mybutton" targettype="button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="button" > <GrID Cursor="Hand" margin="20"> <Ellipse WIDth="150" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center"> <Ellipse.Fill> <RadialGradIEntBrush> <GradIEntStop color="Gold" Offset="1"></GradIEntStop> <GradIEntStop color="White" Offset="0"></GradIEntStop> </RadialGradIEntBrush> </Ellipse.Fill> </Ellipse> <TextBlock Text="{TemplateBinding Content}" FontSize="24" Foreground="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" ></TextBlock> </GrID> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <!--调用样式模板--> <GrID x:name="LayoutRoot" Background="White"> <StackPanel WIDth="400" Height="300" HorizontalAlignment="Center" OrIEntation="Horizontal" VerticalAlignment="Center" Background="White"> <button Style="{StaticResource mybutton}" Content="my template"></button> <button Style="{StaticResource mybutton}" Content="54546565"></button> </StackPanel> </GrID></UserControl> 总结 以上是内存溢出为你收集整理的Silverlight中的ControlTemplate与 TemplateBinding全部内容,希望文章能够帮你解决Silverlight中的ControlTemplate与 TemplateBinding所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)