2

나는보기에 쉬운 것을 이해하고 구현하려고 많은 시간을 보냈습니다.ContextMenu.MenuItem DataTemplate에서 ScrollViewer 사용

내 WP7 애플리케이션에는 긴 탭을 사용하여 컨텍스트 메뉴를 표시하는 버튼이 있습니다. 이 컨텍스트 메뉴는 목록에 바인딩되므로 항목 수가 많을 수 있습니다. 지금까지는 데이터 템플릿 주변에 스크롤 뷰어를 추가 할 수 없었습니다. 그러나 데이터 템플릿이 없다면 제대로 작동하는지 테스트했습니다.

<toolkit:ContextMenuService.ContextMenu> 
    <toolkit:ContextMenu ItemsSource="{Binding}"> 
     <toolkit:ContextMenu.ItemTemplate> 
      <DataTemplate > 
      <toolkit:MenuItem Header="{Binding Path=Name}" Click="MenuItem_Click"/> 
      </DataTemplate> 
     </toolkit:ContextMenu.ItemTemplate> 
    </toolkit:ContextMenu> 
</toolkit:ContextMenuService.ContextMenu> 

나는 거의 모든 곳에서 ScrollViewer를 추가하려고 : 여기

내 XAML입니다 (태그 전에 ..., 태그 <toolkit:ContextMenu ItemsSource="{Binding}"> 전에 <toolkit:ContextMenuService.ContextMenu>)하지만 아무것도 나는 또한 시도

작동하지 않습니다 내 태그에 첨부 된 속성을 사용하는 것 :

<toolkit:ContextMenu ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Visible"> 

하지만 작동하지 않습니다. 내가하지이 같은 데이터 템플릿을 사용 할 경우

는하지만 :

<toolkit:ContextMenuService.ContextMenu> 
    <toolkit:ContextMenu> 
     <ScrollViewer> 
      <stackPanel> 
       <toolkit:MenuItem Header="Item1"/> 
       <toolkit:MenuItem Header="Item2"/> 
       <toolkit:MenuItem Header="Item3"/> 
       <toolkit:MenuItem Header="Item4"/> 
      </stackPanel> 
     </ScrollViewer> 
    </toolkit:ContextMenu> 
</toolkit:ContextMenuService.ContextMenu> 

그것을 잘 작동합니다.

내가 뭔가를 놓쳤습니까?

답변

4

당신은이 같은 템플릿과 ItemsPanelTemplate에 StackPanel에, 그래서 뭔가 당신의 ScrollViewer를 넣어하는 것이 좋습니다 :

<toolkit:ContextMenuService.ContextMenu> 
    <toolkit:ContextMenu ItemsSource="{Binding}"> 
     <toolkit:ContextMenu.Template> 
      <ControlTemplate TargetType="toolkit:ContextMenu"> 
       <Border> 
        <ScrollViewer> 
         <ItemsPresenter/> 
        </ScrollViewer> 
       </Border> 
      </ControlTemplate> 
     </toolkit:ContextMenu.Template> 
     <toolkit:ContextMenu.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel /> 
      </ItemsPanelTemplate> 
     </toolkit:ContextMenu.ItemsPanel> 
     <toolkit:ContextMenu.ItemTemplate> 
      <DataTemplate > 
      <toolkit:MenuItem Header="{Binding Path=Name}" Click="MenuItem_Click"/> 
      </DataTemplate> 
     </toolkit:ContextMenu.ItemTemplate> 
    </toolkit:ContextMenu> 
</toolkit:ContextMenuService.ContextMenu> 
+0

감사합니다, 그것은 – Refre

+0

@Refre 다행 내가 도울 수 .. 잘 작동! 문제가 해결되면 답변으로 표시해주세요. 감사합니다. – theChrisKent

관련 문제