WPF Button.Contextmenu

Button안에 ContextMenu가 있고 좌클릭이던 우클릭이던 Contextmenu를 작동하도록 작성했는데

  1. 우클릭(Button) → 좌 또는 우클릭 (Contextmenu)를 해야
  2. 좌클릭(Button) → 좌 또는 우클릭 (Contextmenu)이 작동이 되네요

1번 과정을 하지 않으면 2번에서 Contextmenu클릭시 반응이 없네요.

<Button Content="Option" HorizontalAlignment="Center" VerticalAlignment="Center" 
                x:Name="OptionBtn"
                
                Cursor="Hand" Width="163" Grid.Row="1" 
                DataContext="{Binding DataViewModel}" >
            <Button.ContextMenu>
                <ContextMenu x:Name="OptionContextmenu" >
                    <MenuItem Header="Edit" Command="{Binding Edit_Command}" />                            
                    <MenuItem Header="Add"   Command="{Binding Add_Command}" />                                      
                    <MenuItem Header="List" Command="{Binding List_Command}" />                        
                </ContextMenu>
            </Button.ContextMenu>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Click">
                    <i1:ChangePropertyAction TargetName="OptionContextmenu"
                                             PropertyName="IsOpen"
                                             Value="True"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Button>

다음과 같은데 1번 행동을 무조건해야지 2번이 작동하네요 ㅠㅠ

좋아요 1

WPF 질문이어서 윈도우 데스크탑 카테고리로 글을 이동해드렸습니다.

좋아요 2

아하 넵 감사합니다

좋아요 1

다음과 같이 스토리보드를 활용해도 됩니다.

<Button Grid.Row="2" Content="Option" HorizontalAlignment="Center" VerticalAlignment="Center" 
                x:Name="OptionBtn"
                Cursor="Hand" Width="163">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames Storyboard.TargetName="OptionContextmenu"
                                                                Storyboard.TargetProperty="IsOpen">
                                    <DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/>
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Button.Triggers>

            <Button.ContextMenu>
                <ContextMenu x:Name="OptionContextmenu">
                    <MenuItem Header="Edit"/>
                    <MenuItem Header="Add"/>
                    <MenuItem Header="List"/>
                </ContextMenu>
            </Button.ContextMenu>
</Button>
좋아요 3

앗 감사합니다! 적용해볼께요!

좋아요 1