如何设置UWP中MenuFlyoutSubItem生成的MenuFlyout高度?
在UWP开发中,要设置MenuFlyoutSubItem关联的子MenuFlyout高度,可通过以下两种方式实现:
1. XAML样式定义(推荐)
直接在资源中定义自定义样式,指定MaxHeight或Height属性,再应用到目标MenuFlyout上。使用MaxHeight会在内容超出时自动显示滚动条,Height则会固定高度截断内容。
<Page.Resources> <!-- 自定义菜单样式,设置最大高度 --> <Style x:Key="FixedHeightMenuFlyout" TargetType="MenuFlyout"> <Setter Property="MaxHeight" Value="300"/> <!-- 如需固定高度,替换为下面的设置 --> <!-- <Setter Property="Height" Value="300"/> --> </Style> </Page.Resources> <!-- 实际使用示例 --> <Button Content="打开主菜单"> <Button.Flyout> <MenuFlyout> <MenuFlyoutSubItem Text="展开子菜单"> <MenuFlyoutSubItem.Flyout> <!-- 应用自定义样式 --> <MenuFlyout Style="{StaticResource FixedHeightMenuFlyout}"> <MenuFlyoutItem Text="选项1"/> <MenuFlyoutItem Text="选项2"/> <MenuFlyoutItem Text="选项3"/> <MenuFlyoutItem Text="选项4"/> <MenuFlyoutItem Text="选项5"/> <MenuFlyoutItem Text="选项6"/> <MenuFlyoutItem Text="选项7"/> </MenuFlyout> </MenuFlyoutSubItem.Flyout> </MenuFlyoutSubItem> </MenuFlyout> </Button.Flyout> </Button>
2. 后台代码动态设置
若需在运行时调整高度,可通过代码获取MenuFlyoutSubItem关联的MenuFlyout实例,直接修改其高度属性:
// 假设已通过命名引用获取到MenuFlyoutSubItem实例 var targetSubItem = MySubMenuItem; if (targetSubItem.Flyout is MenuFlyout subFlyout) { // 设置最大高度为300 subFlyout.MaxHeight = 300; // 如需固定高度,使用下面的代码 // subFlyout.Height = 300; }
效果示例

内容的提问来源于stack exchange,提问作者PremKumar Shanmugam
相关产品推荐
相关产品推荐

