WPF ItemTemplate 导致 ListBox 内容大小问题

WPF ItemTemplate Causing ListBox Content Size Issue

在 WPF 项目中,如果我在 XAML 中手动插入项目,我有一个 ListBox 可以正确呈现,例如:

<ListBoxItem>
    <Grid Background="#7F271043" Width="200" Height="200">
        <Grid.RowDefinitions>
            <RowDefinition Height="110" />
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>

        <Image Grid.Row="0" Source="Logo-40p.png" HorizontalAlignment="Center" Margin="10,10,10,10" />
        <TextBlock Grid.Row="1" Text="Test Item" Foreground="White" Margin="10,0,10,0" FontSize="16" VerticalAlignment="Center" />
        <local:Rating Grid.Row="2" HorizontalAlignment="Left" Height="24" Margin="10,0,0,0" VerticalAlignment="Center" Width="130" SelectedValue="4" IsReadOnly="True" />
        <TextBlock Grid.Row="2" Text="Free" Foreground="#FF969292" Margin="0,0,10,0" FontSize="14" HorizontalAlignment="Right" VerticalAlignment="Center" />
    </Grid>
</ListBoxItem>

ListBoxItem 的底部看起来像:

然而,当我将 <ListBoxItem> 换成:

<ListBox.ItemTemplate>
    <DataTemplate>

即使我保持其他一切相同,它也会给我的评级控制带来一个我无法修复的尺寸问题(不响应手动尺寸或拉伸设置):

关于如何解决这个问题有什么想法吗? ItemTemplate / DataTemplate 是否做了一些可能导致控件不遵守手动设置或由其所在的网格行设置的大小?

已设法解决此问题 - XAML 中手动定义的 ListBoxItem 的行为似乎与 ItemTemplate / DataTemplate.[=22= 的输出不同]

我的评级用户控件有一个指定的设置高度和宽度,它们被 XAML(height/width/stretch)在 ListBoxItem 内但不在 ItemTemplate 内的实现覆盖/ DataTemplate:

mc:Ignorable="d" Height="750" Width="4070" MouseLeave="UserControl_MouseLeave">

所以我改为将 Height / Width 更改为 DesignHeight / DesignWidth 来解决问题:

mc:Ignorable="d" d:DesignHeight="750" d:DesignWidth="4070" MouseLeave="UserControl_MouseLeave">