2010-12-19 8 views
4

잠시 동안 검색 했음에도 불구하고 이에 대한 좋은 문서를 찾는 데 어려움이 있습니다.컨텍스트 메뉴 표시

내 앱에 앱 목록의 시작 화면에 앱을 고정하는 것과 같은 다른 탭 앤드 홀드 상황에 맞는 메뉴의 동작을 복제하는 상황에 맞는 메뉴를 만들고 싶습니다. 나는 그것을 보여 어떻게해야합니까

   <toolkit:ContextMenuService.ContextMenu> 
        <toolkit:ContextMenu x:Name="sectionContextMenu"> 
         <toolkit:MenuItem Header="Hide this section from this list" /> 
        </toolkit:ContextMenu> 
       </toolkit:ContextMenuService.ContextMenu> 

: 여기

내 상황에 맞는 메뉴입니다?

+0

간단하고 쉬운 방법은 윈도우 폰 7 http://www.akiievolution.com/context-menu-for-windows-phone-7-in-silverlight-toolkit/ –

+0

검사에서 상황에 맞는 메뉴를 사용하는 이 게시물 : [WP7 ContextMenu in depth | 1 부 : 핵심 개념 및 API] (http://windowsphonegeek.com/articles/WP7-ContextMenu-in-depth--Part1-key-concepts-and-API) 희망이 도움이 될 것입니다. –

답변

7

컨텍스트 메뉴는 사용자가 누르고 길게하려는 요소에 연결해야합니다.

<Border Margin="0,12" BorderBrush="{StaticResource PhoneForegroundBrush}" BorderThickness="2" Background="Transparent" VerticalAlignment="Center" Padding="16"> 
    <toolkit:ContextMenuService.ContextMenu> 
     <toolkit:ContextMenu x:Name="sectionContextMenu"> 
     <toolkit:MenuItem Header="Hide this section from this list" /> 
     </toolkit:ContextMenu> 
    </toolkit:ContextMenuService.ContextMenu> 
    <TextBlock Text="Tap and hold here to invoke a ContextMenu" Style="{StaticResource PhoneTextNormalStyle}"/> 
</Border> 

이제 사용자는 탭과 컨텍스트 메뉴를 호출하고,이 Border 원소의 함유량을 길게 할 수있다.

2

콘텐츠에 따라 다른 항목에 대한 고유 컨텍스트 메뉴.

private ContextMenu CreateContextMenu(ListBoxItem lbi) 
{ 
    ContextMenu contextMenu = new ContextMenu(); 
    ContextMenuService.SetContextMenu(lbi, contextMenu); 
    contextMenu.Padding = new Thickness(0); 

    string item_1 = "item 1"; 
    if(lbi.Content is string) { 
     item_1 = lbi.Content as string; 
    } 
    contextMenu.ItemsSource = new List<string> { item_1, "item 2", "item 3" }; 
    contextMenu.IsOpen = true; 
    return contextMenu; 
} 

private void Results_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (Results.SelectedIndex == -1) return; 
    int index = Results.SelectedIndex; 

    ListBoxItem lbi = Results.ItemContainerGenerator.ContainerFromIndex(index) as ListBoxItem; 

    CreateContextMenu(lbi); 
    Results.SelectedIndex = -1; 
}