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.