1.什么是控件模板? 我看完这一节,就一个字难,太TM难了,难到上天,但是我还是要慢慢消化。 当我写了一段代码关于按钮的; <Button Margin="10" Content="Test" Height="50"> </Button> 按钮正常显示,但是我想自己定义一个按钮,那就麻烦了,原有的方式是不行的了,那么怎么办? 控件模板的问题就提出来了
控件模板:使用的是控件的Template属性 public ControlTemplate Template { get; set; }来自control, public class ControlTemplate : FrameworkTemplate public abstract class FrameworkTemplate : DispatcherObject, INameScope, IQueryAmbient 可以看出这个玩意来自控件,ControlTemplate 继承了FrameworkTemplate FrameworkTemplate 继承了DispatcherObject 那就明白了控件模板这个玩意从control向上一脉相传,最中在老祖宗都有。
<Button Margin="10" Background="SeaGreen" Content="Test" Height="50" Template="{StaticResource btntemp}" >
<Window.Resources>
<ControlTemplate x:Key="btntemp" TargetType="Button">
<Grid>
<Border Background="{TemplateBinding Background }" BorderBrush="Red" BorderThickness="5"/>
<ContentPresenter Content="{TemplateBinding Content }" ></ContentPresenter>
</Grid>
</ControlTemplate>
</Window.Resources>
可以看出来,我对控件模板的理解就是,将复杂的自定义控件抽象出来,通过绑定的方式来给与自己需要的样子,处处可用
标签:控件,FrameworkTemplate,-------------------,ControlTemplate,按钮,public,模板 From: https://www.cnblogs.com/EdwardShare/p/17029727.html