我想模板化一个控件并将控件本身包含到模板中,而不仅仅是控件的内容。
例如,我有一个按钮:
<Grid x:Name="LayoutRoot" Background="White">
<Button Name="hello" Content="123" Width="100" Height="100" >
</Button>
</Grid>
我想在这个按钮周围做一个更广泛的,所以它看起来像这样:
<Grid x:Name="LayoutRoot" Background="White" Width="120" Height="120">
<Rectangle Fill="AliceBlue"/>
<Button Name="hello" Content="123" Width="100" Height="100" >
</Button>
</Grid>
但我想让它更通用,不仅适用于按钮,还适用于其他一些控件。即图像、TreeViewItem 等。
所以我创建了一个模板:
<UserControl.Resources>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Width="120" Height="120">
<Rectangle Fill="AliceBlue"/>
<ContentPresenter Content="{TemplateBinding Property=ContentControl.Content}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Button Name="hello" Content="123" Width="100" Height="100" >
</Button>
</Grid>
现在 ContentPresenter 只显示 Button 的内容,但不包括按钮本身,我怎样才能包括模板化控件本身呢?