UWP Menuflyout 以编程方式不会在 运行 时间触发

UWP Menuflyout programatically doesn't trigger at run time

我有这个XAML

<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Left">
    <Button 
        x:Name="BtnTiempo"
        Content="&#xE121;"
        Style="{StaticResource AppBaseButton}"
        Padding="0"
        FontSize="17"
        Foreground="Red">
        <Button.ContextFlyout>
            <MenuFlyout x:Name="TiemposMnu">
                <MenuFlyout.Items>

                </MenuFlyout.Items>
            </MenuFlyout>
        </Button.ContextFlyout>
    </Button>
    <TextBlock Text="{Binding Tiempo.StrDescripcion,FallbackValue=?}" Grid.Column="1" TextAlignment="Right" Foreground="Red"/>
</StackPanel>

和这个填充 TiemposMnu

的代码
    #region Tiempos 
    public List<Tiempo> Tiempos
    {
        get { return (List<Tiempo>)GetValue(TiemposProperty); }
        set { SetValue(TiemposProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Tiempos.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty TiemposProperty =
        DependencyProperty.Register("Tiempos", typeof(List<Tiempo>), typeof(ItemDetallePedidoControl), new PropertyMetadata(null,new PropertyChangedCallback(OnTiemposChanged)));

    private static void OnTiemposChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        if(d is ItemDetallePedidoControl p)
        {
            if (p.Tiempos != null)
            {
                foreach (var tiempo in p.Tiempos)
                {
                    MenuFlyoutItem item = new MenuFlyoutItem()
                    {
                        Text = tiempo.StrDescripcion
                    };
                    item.Click += (s, e1) =>
                    {
                        p.SeleccionarTiempo(tiempo.IntIdTiempo);
                    };
                    p.TiemposMnu.Items.Add(item);
                }
            }
        }
    }
    #endregion

一切正常。但是当我点击/单击我的按钮时,不显示 MenuFlyout。

我做错了什么?

But when I tap / click my button doesn't shows the MenuFlyout.

如果你想 tap/click 按钮显示 MenuFlyout you need to use Button.Flyout . Details please see the remark 部分。

<Button.Flyout>
    <MenuFlyout x:Name="TiemposMnu">
        <MenuFlyout.Items>                 
        </MenuFlyout.Items>
    </MenuFlyout>
</Button.Flyout>

如果要触发 MenuFlyoutButton.ContextFlyout、right-click(鼠标)或 press-and-hold(触摸)直接在按钮上关联。模式详情请参考official sample.