티스토리 뷰

C#/WPF

WPF tutorial - The WPF ContextMenu

광그로 2017. 7. 1. 17:18

http://www.wpf-tutorial.com/common-interface-controls/contextmenu/

context menu는 종종 팝업 메뉴로 언급되어집니다.


WPF는 ContextMenu 컨트롤을 제공하며, ContextProperty를 통하여 이루어집니다.

ContextProperty 는 모든 컨트롤을 제어합니다.

1
2
3
4
5
6
7
8
9
10
<Button Content="Right-click me!" VerticalAlignment="Center" HorizontalAlignment="Center">
        <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Header="Menu item 1" />
                <MenuItem Header="Menu item 2" />
                <Separator />
                <MenuItem Header="Menu item 3" />
            </ContextMenu>
        </Button.ContextMenu>
    </Button>
cs


ContextMenu with Commands and icons


이전의 menu와 같이 icon과 command 등을 삽입할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
<TextBox Text="Right-click here for context menu!">
        <TextBox.ContextMenu>
            <ContextMenu>
                <MenuItem Command="Cut">
                    <MenuItem.Icon>
                        <Image Source="..." />
                    </MenuItem.Icon>
                </MenuItem>
            </ContextMenu>
        </TextBox.ContextMenu>
    </TextBox>
cs


Invoke ContextMenu from Code-behind


자동적인 방법으로, ContextMenu가 속한 컨트롤에 마우스 우클릭으로 contextmenu를 호출하였습니다.

code-behind에서 직접 수동으로 호출할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
<Window.Resources>
ContextMenu를 Window의 모든 곳에서 사용이 가능하도록 window의 resources에 추가합니다.
        <ContextMenu x:Key="cmButton">
            <MenuItem Header="Menu item 1" />
            <MenuItem Header="Menu item 2" />
            <Separator />
            <MenuItem Header="Menu item 3" />
        </ContextMenu>
    </Window.Resources>
 
    <Grid>
        <Button Content="Click" VerticalAlignment="Center"  HorizontalAlignment="Center" Click="Button_Click" ></Button>
    </Grid>
cs


1
2
3
4
5
6
private void Button_Click(object sender, RoutedEventArgs e)
        {
            ContextMenu cm = this.FindResource("cmButton"as ContextMenu;
'cmButton'라는 ContextMenu를 찾습니다.

            cm.PlacementTarget = sender as Button;
어떠한 것을 기준으로 위치를 계산해야하는지 설정합니다.
            cm.IsOpen = true;
        }

cs




'C# > WPF' 카테고리의 다른 글

WPF tutorial - The WPF StatusBar control  (0) 2017.07.01
WPF tutorial - The WPF ToolBar control  (0) 2017.07.01
WPF tutorial - The WPF Menu control  (0) 2017.06.29
WPF tutorial - The other dialogs  (0) 2017.06.29
WPF tutorial - The SaveFileDialog  (0) 2017.06.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함