我很难理解如何正确使用 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 会填充按钮的整个空间(没有按钮标签),并且控件似乎不再像按钮一样。
谁能解释我错过了什么?