Button์์ ContextMenu๊ฐ ์๊ณ ์ขํด๋ฆญ์ด๋ ์ฐํด๋ฆญ์ด๋ Contextmenu๋ฅผ ์๋ํ๋๋ก ์์ฑํ๋๋ฐ
- ์ฐํด๋ฆญ(Button) โ ์ข ๋๋ ์ฐํด๋ฆญ (Contextmenu)๋ฅผ ํด์ผ
- ์ขํด๋ฆญ(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๊ฐ์ ์ข์์
rkttu
2
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๊ฐ์ ์ข์์
๋ณด์ค๋ถ์ด ๊ณ์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ผ๋จ ์ ๋ ์๋์ฝ๋์ฒ๋ผ ํด๊ฒฐํ์ต๋๋ค!
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
<Button x:Name="MessageBtn" Style="{StaticResource menuButton}">
<StackPanel Orientation="Horizontal">
<fa:IconImage Icon="EnvelopeOpenText" Style="{StaticResource menuButtonIcon}" />
<TextBlock Style="{StaticResource menuButtonText}" Text="Messages" />
</StackPanel>
<b:Interaction.Triggers>
<b:EventTrigger EventName="Click">
<b:ChangePropertyAction TargetObject="{Binding ContextMenu, ElementName=MessageBtn}"
PropertyName="PlacementTarget" Value="{Binding ElementName=MessageBtn,Mode=OneWay}"/>
<b:ChangePropertyAction TargetObject="{Binding ContextMenu, ElementName=MessageBtn}"
PropertyName="IsOpen"
Value="True"/>
</b:EventTrigger>
</b:Interaction.Triggers>
<!-- ContextMenu -->
<Button.ContextMenu>
<ContextMenu >
<MenuItem Header="Menu1" Command="{Binding Menu1Command}"/>
<MenuItem Header="Menu2" />
<MenuItem Header="Menu3" />
</ContextMenu>
</Button.ContextMenu>
</Button>
5๊ฐ์ ์ข์์