0

我很难理解如何正确使用 ContentPresenter。

我的目标是拥有一个自定义按钮,其中包含使用 xaml 形状和路径指定的标签和图像。

我希望能够像这样使用它:

<MyCustomButton ButtonLabel="Button1">
    <ViewBox>
        <Grid>
        <!-- Some list of shapes and paths -->
        </Grid>
    </ViewBox>
</MyCustomButton>

为了实现这一点,我有一个像这样的自定义 UserControl:

<UserControl x:Class="MyCustomButton">
    <Grid>
        <Button>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="1*" />
                    <RowDefinition Height="auto" />
                </Grid.RowDefinitions>
                <ContentPresenter/>
                <TextBlock Grid.Row="1" Text="{x:Bind ButtonLabel}" FontSize="10"/>
            </Grid>
        </Button>
    </Grid> 
</UserControl>

但是,当我使用它时,我作为内容传入的 xaml 会填充按钮的整个空间(没有按钮标签),并且控件似乎不再像按钮一样。

谁能解释我错过了什么?

4

0 回答 0