Элементы контекстного меню не запускаются. - PullRequest
0 голосов
/ 14 июня 2019

Я пытался открыть ContextMenu по нажатию левой кнопки мыши, а не по правой кнопке, поэтому я сделал что-то, как показано ниже.Но пункты меню «Все» и «Выбранные» не запускают свои соответствующие события в .cs.

Xaml

<Button Content="Import" ContextMenuService.IsEnabled="false">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <EventTrigger RoutedEvent="Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="ContextMenu.IsOpen">
                                    <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True"/>
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        <MenuItem Header="All"                                        
                                 Click="ImportAll_Click"/>
                        <MenuItem Header="Selected"
                                 Click="ImportSelected_Click"/>
                    </ContextMenu>
                </Setter.Value>
            </Setter>
        </Style>
    </Button.Style>
</Button>

Xaml.cs

private void ImportAll_Click(object sender, RoutedEventArgs e)
{
}

private void ImportSelected_Click(object sender, RoutedEventArgs e)
{
}

Есть что-то, чего мне здесь не хватает?

1 Ответ

2 голосов
/ 14 июня 2019

Попробуйте определить ContextMenu как ресурс:

<Button Content="Import" ContextMenuService.IsEnabled="false">
    <Button.Resources>
        <ContextMenu x:Key="cm">
            <MenuItem Header="All" Click="ImportAll_Click"/>
            <MenuItem Header="Selected" Click="ImportSelected_Click"/>
        </ContextMenu>
    </Button.Resources>
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Style.Triggers>
                <EventTrigger RoutedEvent="Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="ContextMenu.IsOpen">
                                    <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True"/>
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
            <Setter Property="ContextMenu" Value="{StaticResource cm}" />
        </Style>
    </Button.Style>
</Button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...