0

ユーザーコントロールを作成しました。ユーザーコントロール内に XAML を表示したい。そのように:

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

それはユーザーコントロールです:

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

コントロールに xaml コード (例: <TextBlock Text="My Content" />) を設定するにはどうすればよいですか?

4

1 に答える 1

0

プレゼンターが追加されるアイテムに応じて、ContentPresenter または ItemsPresenter を追加する必要があります。

あなたの場合、他のアイテムの下のスタック パネルにコンテンツが必要な場合は、コンテンツ コントロールを配置し、その中に ContentPresenter を追加できます。

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

複数のコンテンツ アイテムをサポートするだけの場合は、複数のコンテンツをサポートする何らかのコントロールを使用し、<ItemsPresenter/>代わりに を使用します。

于 2012-07-24T14:41:32.257 に答える