0

次のようなグループでいくつかのコントロールを装飾したいと思います。

<UserControl x:Class="Infrastructure.UI.ItemsGroup" ... >
    <Border BorderBrush="Black" BorderThickness="1" CornerRadius="5" Background="Red">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="25" />
            </Grid.RowDefinitions>
            <ContentPresenter Grid.Row="0" />
            <TextBlock x:Name="ctrlGroupText" Grid.Row="1" HorizontalAlignment="Center" />
        </Grid>
    </Border>
</UserControl>

そして、次のような他のXAMLファイルで使用します。

<Grid Grid.Column="0">
    <UI:ItemsGroup GroupText="Hello World">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Button>1111</Button>
            <Button>1111</Button>
        </Grid>
    </UI:ItemsGroup>
</Grid>

しかし、それは機能しません。私は何を間違えましたか?:) ありがとう

4

1 に答える 1

3

を子としてUserControl追加する代わりに、テンプレートを編集する必要がありますBorder

<UserControl x:Class="Infrastructure.UI.ItemsGroup" ... >
    <UserControl.Template>
        <ControlTemplate TargetType="{x:Type UserControl}">
            <Border BorderBrush="Black" BorderThickness="1" CornerRadius="5" Background="Red">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*" />
                        <RowDefinition Height="25" />
                    </Grid.RowDefinitions>
                    <ContentPresenter Grid.Row="0" />
                    <TextBlock x:Name="ctrlGroupText" Grid.Row="1" HorizontalAlignment="Center" />
                </Grid>
            </Border>
        </ControlTemplate>
    </UserControl.Template>
</UserControl>

アップデート

のテキストを設定するにはTextBlockGroupTextバインディングを使用できます

<TextBlock x:Name="ctrlGroupText"
           Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ItemsGroup}},
                          Path=GroupText}"
           Grid.Row="1"
           HorizontalAlignment="Center" />
于 2011-02-15T09:12:01.873 に答える