0
WPF에서 스타일 트리거를 Button에 추가하여 ContextMenu가 열렸는지 여부를 결정할 수 있습니까?오른쪽 마우스 클릭시 WPF 버튼 스타일 지정
그렇다면 컨텍스트 메뉴가 열리면 해당 버튼의 배경에 색을 지정하고 싶습니다.
다음WPF에서 스타일 트리거를 Button에 추가하여 ContextMenu가 열렸는지 여부를 결정할 수 있습니까?오른쪽 마우스 클릭시 WPF 버튼 스타일 지정
그렇다면 컨텍스트 메뉴가 열리면 해당 버튼의 배경에 색을 지정하고 싶습니다.
다음그것을 할 수있는 일반적인 방법을 찾을 수 없습니다 ... :
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Grid.Column="1" Margin="5" Content="Button" x:Name="theButton">
<Button.Background>
<SolidColorBrush x:Name="BackgroundBrush" Color="LightGray" />
</Button.Background>
<Button.ContextMenu>
<ContextMenu x:Name="contextMenu">
<MenuItem Header="Option 1" />
<MenuItem Header="Option 2" />
</ContextMenu>
</Button.ContextMenu>
<Button.Triggers>
<!-- This changed the color to red when the context menu is openning -->
<EventTrigger RoutedEvent="Button.ContextMenuOpening">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBrush"
Storyboard.TargetProperty="Color" Duration="0:0:0" To="Red" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<!-- This changed the color back to light gray when the context menu is closing -->
<EventTrigger RoutedEvent="Button.ContextMenuClosing">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBrush"
Storyboard.TargetProperty="Color" Duration="0:0:0" To="LightGray" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>