C# 使用ControlTemplate覆盖XAML WPF中的按钮不会显示内容

C# 使用ControlTemplate覆盖XAML WPF中的按钮不会显示内容,c#,wpf,xaml,C#,Wpf,Xaml,我是一个XAML新手,正在看这个博客 他提到“注意,他们没有任何内容(Button1a、Button1b等)。这是因为我们的模板不包含内容的元素。”我想知道如何确保即使应用了新的按钮模板,内容仍然保留。这是XAML <Page.Resources> <ControlTemplate TargetType="Button" x:Key="targetButton"> <Canvas Width="100" Height="100" Name=

我是一个XAML新手,正在看这个博客

他提到“注意,他们没有任何内容(Button1a、Button1b等)。这是因为我们的模板不包含内容的元素。”我想知道如何确保即使应用了新的按钮模板,内容仍然保留。这是XAML

<Page.Resources>
    <ControlTemplate TargetType="Button" x:Key="targetButton">
        <Canvas Width="100" Height="100" Name="mainCanvas">
            <Rectangle Height="100" Width="100" Fill="Aqua" Canvas.Top="1"/>     
        </Canvas>
    </ControlTemplate>        
    <Style TargetType="Button">
        <Setter Property="Margin" Value="5, 5, 5, 5"/>            
        <Setter Property="Template" Value="{StaticResource targetButton}"/>
    </Style>
</Page.Resources> 
<StackPanel DataContext="{Binding Board}">
    <StackPanel Orientation="Horizontal">
        <Button Name="testButton1a" Click="testButton1a_Click" Content="testButton1a"/>
        <Button Name="testButton1b" Click="testButton1a_Click" Content="testButton1b"/>
        <Button Name="testButton1c" Click="testButton1a_Click" Content="testButton1c"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <Button x:Name="testButton2a" Click="testButton1a_Click" Content="testButton2a"/>
        <Button x:Name="testButton2b" Click="testButton1a_Click" Content="testButton2b"/>
        <Button x:Name="testButton2c" Click="testButton1a_Click" Content="testButton2c"/>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
        <Button Name="testButton3a" Click="testButton1a_Click" Content="testButton3a"/>
        <Button Name="testButton3b" Click="testButton1a_Click" Content="testButton3b"/>
        <Button Name="testButton3c" Click="testButton1a_Click" Content="testButton3c"/>
    </StackPanel>
</StackPanel>

我试图在模板中添加一个文本块,但我看到所有按钮都覆盖了相同的文本块。我只想呈现矩形按钮矩阵上显示的testButton*内容,以便单击后可以更改内容


谢谢,如有任何帮助,我们将不胜感激。

您可以使用
ContentPresenter
显示内容:

<ControlTemplate TargetType="Button" x:Key="targetButton">
   <Canvas Width="100" Height="100" Name="mainCanvas">
      <Rectangle Height="100" Width="100" Fill="Aqua" Canvas.Top="1"/>
      <ContentPresenter/>
   </Canvas>
</ControlTemplate>