2013-05-06 8 views
6

Ich bin ein Neuling XAML und wurde in diesem BlogZwingende Knopf in XAML WPF mit Control nicht angezeigt Inhalt

http://jeremybytes.blogspot.com/2009/03/wpf-xaml-sample.html

Er erwähnt „Mitteilung suchen, dass sie keinen Inhalt (Button1a, Button1b, usw.) Dies liegt daran, dass unsere Vorlage kein Element für den Inhalt enthält. " Ich möchte herausfinden, wie sichergestellt wird, dass der Inhalt auch nach der neuen Schaltflächenvorlage erhalten bleibt. Hier ist die 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> 

Ich habe versucht, einen Textblock in der Vorlage hinzufügen, aber ich sehe den gleichen Textblock über alle Tasten überschichtet. Alles, was ich will, ist, testButton * Inhalte anzuzeigen, die in der rechteckigen Schaltflächenmatrix angezeigt werden, damit ich den Inhalt nach dem Klicken ändern kann.

Danke, wird jede Hilfe

Antwort

8

geschätzt werden Sie die ContentPresenter können den Inhalt anzuzeigen:

<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> 
+0

Großen. Das hat funktioniert, vielen Dank! – Yam