ContentPresenter in UserControl

Ich bin neu in WPF und ich bin versucht, erstellen Sie ein Benutzersteuerelement, das haben einige verschachtelte Inhalte.

<my:InformationBox Header="General Information" Width="280">
    <StackPanel>
        <Label>Label1</Label>
        <Label>Label2</Label>
    </StackPanel>
</my:InformationBox>

Wie Sie sehen können ich möchte ein StackPanel in es. Wie ich Lesen Sie einige Artikel, die ich sollte hinzufügen ContentPresenter zu meinem UserControl, das Tat ich auch, aber ich kann nicht finden, was sollte werden gebunden, um es der Content-Eigenschaft.

Hier ist mein UserControl-code

<UserControl x:Class="ITMAN.InformationBox"
             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="280" Name="infoBox" Loaded="infoBox_Loaded">
    <StackPanel Width="{Binding ElementName=infoBox, Path=Width}" HorizontalAlignment="Stretch">
        <Label Content="{Binding ElementName=infoBox, Path=Header}" />
        <Border BorderThickness="0,1,0,0" Padding="10 5" Margin="5 0 5 10" BorderBrush="#B4CEDE">
            <StackPanel>
                <ContentPresenter Content="{Binding Content}" />
                <Label Content="End" />
            </StackPanel>
        </Border>
    </StackPanel>
</UserControl>

Ich habe versucht, so viele Kombinationen aus den verschiedenen Artikeln, aber ich finde keine Beispiel arbeiten, was ich erreichen will.

Ähnliche Frage wurde bereits früher von einem anderen user, aber da gibt es Antworten, hat mir nicht helfen: Hat jemand ein einfaches Beispiel für ein UserControl mit einem einzigen ContentPresenter?

  • Soweit ich informiert bin, werden Benutzer-Steuerelemente nicht ein Content Eigenschaft. Auch ContentPresenters sind in der Regel nur in den Vorlagen verwendet werden. Ich denke, was Sie tun müssen, ist, erstellen Sie ein benutzerdefiniertes Steuerelement mit einer Abhängigkeitseigenschaft Content und eine Standard-Vorlage, legt Ihre Steuern, wie Sie es mit der Kontrolle durch die Nutzer. – Es könnte möglich sein, fügen Sie die DP auf die Benutzer-Steuerelement-Klasse statt; Sie müssten eine ContentControl dann aber.
  • Ja, Sie brauchen, um hinzuzufügen, abhängigkeitseigenschaften zu Ihrem Benutzersteuerelement. Check this out codeproject.com/Articles/224230/...
  • ein Benutzer-Steuerelement ist ein ContentControl, daher ein ContentPresenter ist in der Tat nutzbar.
  • Aber ist es nicht auch ein content-Steuerelement, so dass Sie bauen können eine benutzerdefinierte user-control mit content? Ist die daraus resultierende Kontrolle, die Sie erstellen es, eine inhaltliche Kontrolle als gut?
  • ein UserControl leitet sich von ContentControl. Der xaml-Teil ist seine ControlTemplate. So können Sie bauen, Benutzersteuerelemente, die nutzen nicht die Inhalte, aber wenn Sie es verwenden möchten, müssen Sie den ContentPresenter.
  • Ah, ich sehe! Vielen Dank 🙂
  • ich muss mich entschuldigen, scheint, dass ich falsch war. Das ist aber nicht die Vorlage Ihrer definieren Sie in xaml ist es ja Ihr Inhalt ist. Sehen user1537441 Antwort. Einer der Gründe, warum ich nicht verwenden, Benutzersteuerelemente überhaupt.

InformationsquelleAutor krzychu | 2012-07-19
Schreibe einen Kommentar