1

我想模板化一个控件并将控件本身包含到模板中,而不仅仅是控件的内容。

例如,我有一个按钮:

<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 的内容,但不包括按钮本身,我怎样才能包括模板化控件本身呢?

4

0 回答 0