简体   繁体   中英

Open ContextMenu on ToggleButton when IsChecked property changed state to True

I want open ToggleButton.ContextMenu when IsChecked is set true.

I write code below, however ContextMenu.IsOpen is not changed:

<ToggleButton x:Name="btnRegularButton"            
                      Content="Regular Button">

            <ToggleButton.Style>
                <Style TargetType="ToggleButton">
                    <Style.Triggers>

                        <Trigger Property="IsChecked" Value="True">
                            <Setter Property="ContextMenu.IsOpen" Value="True" />
                        </Trigger>

                    </Style.Triggers>
                </Style>
            </ToggleButton.Style>

            <ToggleButton.ContextMenu>

                <ContextMenu>                                                      
                    <MenuItem Header="Save" />
                    <MenuItem Header="Print" />
                    <Separator />
                    <MenuItem Header="Exit" />
                </ContextMenu>
            </ToggleButton.ContextMenu>

        </ToggleButton>
<Window x:Class="Staticoverflow.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <ContextMenu x:Key="ContextMenu1">
        <MenuItem Header="Save" />
        <MenuItem Header="Print" />
        <Separator />
        <MenuItem Header="Exit" />
    </ContextMenu>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions >
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <ToggleButton x:Name="btnRegularButton"            
                  Content="Regular Button">

        <ToggleButton.Style>
            <Style TargetType="ToggleButton">
                <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter  Property="ContextMenu"  Value="{StaticResource ContextMenu1}" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>


    </ToggleButton>

</Grid>

Hope this will help.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM