UWP AppBarButton MenuFlyout删除上边距

时间:2019-01-30 16:08:47

标签: c# xaml uwp

我有一个MenuFlyout产生的AppBarButton。弹出按钮的上边距为4,我曾经这样删除它:

<MenuFlyout.MenuFlyoutPresenterStyle>
    <Style TargetType="MenuFlyoutPresenter">
        <Setter Property="Margin" Value="0,-4,0,0"/>
    </Style>
</MenuFlyout.MenuFlyoutPresenterStyle>

但是,在我将目标版本从1803升级到1809之后,这不再起作用了。

如何再次删除页边距?请在下面查看我的代码和问题图片。弹出按钮通过带有省略号图标的按钮产生。

<AppBarButton Style="{StaticResource AppBarMoreButtonStyle}" Name="Menu" Width="{StaticResource TopBarHeight}" Icon="More">
    <AppBarButton.Flyout>
        <MenuFlyout>
            <ToggleMenuFlyoutItem Name="Switch" Click="Switch_OnClick" Text="Item" HorizontalAlignment="Stretch"/>
            <MenuFlyoutItem Text="{StaticResource ButtonLogoutContent}" Click="AppBarButtonSignOut_OnClick" HorizontalAlignment="Stretch"/>
        </MenuFlyout>
    </AppBarButton.Flyout>
</AppBarButton>

MenuFlyout

编辑:Xeorge的结果Xeorge的建议。弹出式广告的起点:

MenuFlyout

1 个答案:

答案 0 :(得分:1)

private void AppbarButton_Tapped(object sender, TappedRoutedEventArgs e)
        {
            YourFly.ShowAt(AppbarButton, new Point(AppbarButton.ActualWidth-160, AppbarButton.ActualWidth-10));
        }

您必须将弹出按钮放入 节点,使用x:Name代替Name。

   <MenuFlyout x:Name="YourFly"  >
            <MenuFlyoutItem Text="Item"  x:Name="item1"  Width="160"/>
            <MenuFlyoutItem Text="Log out" x:Name="item2" Width="160"/> 
        </MenuFlyout >

作为问题的扩展,您应该在弹出项目上设置固定宽度。