为 ItemTemplate 设置特定的高度

Set a specific height for ItemTemplate

我想为 DropDownButton ItemTemplate 设置一个特定的高度,特别是,我在 DropDown Button 中有很多元素,实际上显示的列表太长了,如下图所示,结构是这个:

<Controls:DropDownButton Content="Nazioni" Width="120" Margin="0, 0, 20, 0" 
                         ItemsSource="{Binding Countries}"
                         ItemTemplate="{StaticResource CombinedTemplate}"/>

是否可以设置特定高度?

如果要设置使用提供的 ItemTemplate 显示项目的元素的高度(此元素通常称为 item 容器), 你应该使用 ItemContainerStyle 属性 (继承自 ItemsControl):

<Controls:DropDownButton (...)>
    <Controls:DropDownButton.ItemContainerStyle>
        <Style TargetType="MenuItem">
            <Setter Property="Height" Value="..." />
        </Style>
    </Controls.DropDownButton.ItemContainerStyle>
</Controls.DropDownButton>

编辑

如果你想限制下拉菜单本身的高度,方法是使用 DropDownButton.MenuStyle 属性:

<Controls:DropDownButton (...)>
    <Controls:DropDownButton.MenuStyle>
        <Style TargetType="ContextMenu" BasedOn="{StaticResource {x:Type ContextMenu}}">
            <Setter Property="MaxHeight" Value="..." />
        </Style>
    </Controls.DropDownButton.MenuStyle>
</Controls.DropDownButton>