2016-05-03 2 views
0

Ich möchte in der Lage sein, riesige Schaltflächen zu meinem ItemsControl hinzuzufügen. Die riesige Schaltfläche soll eine Leinwand mit mehreren Textblöcken in ihm, wie der Knopf in dem folgenden XAML-Code enthalten:Fügen Sie Leinwand und TextBlocks zu riesigen Button in C#

<DockPanel> 
    <Button DockPanel.Dock="Right" Click="add_Click">Add</Button> 

    <ItemsControl Name="itemsControl"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel Orientation="Vertical" /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <Button Width="450" Height="150" Margin="5" Name="button1" Background="DarkGreen"> 
      <Canvas> 
       <TextBlock Canvas.Right="80" Canvas.Bottom="30" Background="RoyalBlue" Width="60" TextAlignment="Center" Name="person1">OR1</TextBlock> 
       <TextBlock Canvas.Right="10" Canvas.Bottom="30" Background="SkyBlue" Width="60" TextAlignment="Center" Name="person2">Smith</TextBlock> 
       <TextBlock Canvas.Left="40" Canvas.Bottom="30" Background="Goldenrod" Width="60" TextAlignment="Center" Name="person3">CAM1</TextBlock> 
       <TextBlock Canvas.Left="110" Canvas.Bottom="30" Background="HotPink" Width="60" TextAlignment="Center" Name="person4">Doe</TextBlock> 
      </Canvas> 
     </Button> 
    </ItemsControl> 
</DockPanel> 

Wie kann ich eine Riesen-Taste wie die in meiner XAML in meiner C# add_Click Funktion hinzufügen? Ich habe versucht, online zu suchen, konnte aber nichts finden, was etwas Ähnliches erreicht.

Antwort

0

Sie haben einige Optionen, je nachdem, was Sie tun möchten. Wenn Sie nur eine kleine Anzahl von Schaltflächen (2 - 3) "hinzufügen" möchten, können Sie die Sichtbarkeit jeder Schaltfläche in Ihrer add_Click-Methode ändern.

button1.Visibility = Visibility.Collapsed; 

Dies ist nicht die beste Option, aber es ist technisch einfach.

Der bessere Ansatz wäre build a user control mit allem, was Sie wollen. Erstellen Sie dann eine beobachtbare Sammlung dieser Schaltflächen in Ihrem Ansichtsmodell. Sobald dies erledigt ist, können Sie bind the item control itemsource to your collection.

Schließlich können Sie in Ihrem Codebehind Sammlungen dieser Schaltflächen erstellen, z.

GiantButtonCollection.Add(new GiantButton()) 

Das ist viel besser (aber mehr Arbeit/Wissen erfordert)

Verwandte Themen