Wie fügen Sie Steuerelemente dynamisch zu einem UserControl durch Benutzer XAML?

Erstellen Sie ein Benutzer-Steuerelement, enthält ein TextBlock und ein StackPanel-Steuerelement, das ermöglicht es dem Benutzer, um seine/Ihre eigenen Steuerelemente auf das Benutzersteuerelement dynamisch in XAML.

Hier ist das Beispiel für die XAML für mein UserControl:

<UserControl x:Class="A1UserControlLibrary.UserControlStackPanel"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="200" d:DesignWidth="300">
    <StackPanel>
        <TextBlock Text="I want the user to be able to add any number of controls to the  StackPanel below this TextBlock."
                   FontFamily="Arial" FontSize="12" FontWeight="DemiBold" Margin="5,10,5,10" TextWrapping="Wrap"/>
        <StackPanel>
            <!-- I want the user to be able to add any number of controls here -->
        </StackPanel>
    </StackPanel>
</UserControl>

Ich möchte, dass der Benutzer in der Lage sein, um das einbetten dieses Steuerelement in Ihrem XAML, und fügen Sie Ihre eigenen Kontrollen auf die stack-panel der Benutzer-Steuerung:

<uc:A1UserControl_StackPanel x:Name="MyUserControl_Test" Margin="10" Height="100">
    <Button Name="MyButton1" Content="Click" Height="30" Width="50"/>
    <Button Name="MyButton2" Content="Click" Height="30" Width="50"/>
    <Button Name="MyButton3" Content="Click" Height="30" Width="50"/>
</uc:A1UserControl_StackPanel>

Tun dies unter Verwendung der obigen XAML-Code funktioniert nicht. Irgendwelche Ideen?

  • Ich glaube nicht, dass Sie tun können, dass in XAML... es sei denn, ich bin Missverständnis Ihren Beispiel.
  • Gibt es eine Möglichkeit im code hinter das zu tun?
InformationsquelleAutor PeterBuilt | 2014-01-29
Schreibe einen Kommentar