/ / Ako zobraziť xamlcode v mojom usercontrol - wpf, užívateľské ovládacie prvky, contentpresenter

Ako zobraziť xamlcode vo svojom usercontrol - wpf, user-controls, contentpresenter

Vytvoril som užívateľskú kontrolu. Chcem zobraziť XAML vo svojom používateľskom ovládaní. Ako to:

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

To je kontrola používateľa:

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

Teraz, ako môžem nastaviť kód xaml (napr. <TextBlock Text="My Content" />), pod mojou kontrolou?

odpovede:

0 pre odpoveď č. 1

Musíte len pridať ContentPresenter alebo ItemsPresenter v závislosti od položky, do ktorej je pridaný moderátor.

Vo vašom prípade, ak chcete obsah na paneli zásobníka pod ostatnými položkami, môžete umiestniť ovládací prvok obsahu a pridať dovnútra ContentPresenter.

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

Ak ste chceli podporovať iba viac ako jednu položku obsahu, použite nejaký ovládací prvok, ktorý podporuje viac ako jeden obsah, a použite <ItemsPresenter/> miesto.