/ / Wie kann ich Xamlcode in meinem usercontrol anzeigen?

Wie man xamlcode in meinem Benutzercontrol anzeigt - wpf, Benutzersteuerelemente, contentpresenter

Ich habe eine Benutzersteuerung erstellt. Ich möchte XAML in meiner Benutzersteuerung anzeigen. So wie das:

<UserControls:UserControl1 Header="Heading">
<TextBlock Text="My Content" />
</UserControls:UserControl1>

Das ist die Benutzerkontrolle:

<UserControl x:Class="UserControls.UserControl1"
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" MinHeight="200"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style TargetType="ToggleButton">
<!-- ... -->
</Style>
</UserControl.Resources>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Header}" Grid.Column="0" />
<ToggleButton Name="ToggleButton" IsChecked="True" Grid.Column="2" />
</Grid>
<Rectangle Stroke="#c3c3c3" StrokeThickness="1" Height="1" StrokeDashArray="4 4" SnapsToDevicePixels="True" Focusable="False" />
<!-- Content -->
</StackPanel>
</UserControl>

Wie kann ich nun den XAML-Code einstellen (z. <TextBlock Text="My Content" />) unter meiner Kontrolle?

Antworten:

0 für die Antwort № 1

Sie müssen lediglich einen ContentPresenter oder ItemsPresenter hinzufügen, abhängig von dem Element, dem der Moderator hinzugefügt wird.

Wenn Sie den Inhalt im Stapelbereich unter den anderen Elementen haben möchten, können Sie in Ihrem Fall ein Inhaltssteuerelement platzieren und einen ContentPresenter hinzufügen.

<StackPanel...>
<Grid ...>
...
</Grid>
<Rectangle .../>
<!---Content here-->
<ContentControl>
<ContentPresenter/>
</ContentControl>
</StackPanel>

Wenn Sie nur mehrere Inhaltselemente unterstützen möchten, verwenden Sie ein Steuerelement, das mehr als einen Inhalt unterstützt, und verwenden Sie <ItemsPresenter/> stattdessen.