2012-05-11 4 views
1

WPF 응용 프로그램에서 요소를 축소해야하는 컨트롤이있어서 요소가 노출되지 않으므로 이와 같은 Loaded 이벤트의 코드로 축소해야합니다.코드 대신 setter가있는 스타일

Stema.Controls.NavigationPane navPane = (Stema.Controls.NavigationPane)sender; 

DockPanel docPanel =(DockPanel)VisualTreeHelper.GetChild(navPane, 0); 
Border border = (Border)VisualTreeHelper.GetChild(docPanel, 1); 
Grid grid = (Grid)VisualTreeHelper.GetChild(border, 0); 
DockPanel docPanel1 = (DockPanel)VisualTreeHelper.GetChild(grid, 4); 

docPanel1.Visibility = Visibility.Collapsed; 

내 질문에, 스타일과 세터와 사용 방법은 시각적 트리에서 한 unamed 요소를 찾을 수와 함께 할 수있는 방법이있다.

편집

코드 XAML

private void NavPane_Loaded(object sender, RoutedEventArgs e) 
     { 


      Stema.Controls.NavigationPane navPane = (Stema.Controls.NavigationPane)sender; 

      DockPanel docPanel =(DockPanel)VisualTreeHelper.GetChild(navPane, 0); 
      Border border = (Border)VisualTreeHelper.GetChild(docPanel, 1); 
      Grid grid = (Grid)VisualTreeHelper.GetChild(border, 0); 
      DockPanel docPanel1 = (DockPanel)VisualTreeHelper.GetChild(grid, 4); 

      docPanel1.Visibility = Visibility.Collapsed; 

     } 

뒤에

<s:NavigationPane Loaded="NavPane_Loaded" x:Name="navigationPane" SelectedIndex="0" LargeItems="2" Margin="2,0,0,1" IsMinimized="False" Width="200" DockPanel.Dock="Left" Background="White" > 
      <s:NavigationPaneItem Header="Reportitems" Name="intro" > 

       <ContentControl x:Name="ActionContent" prism:RegionManager.RegionName="{x:Static inf:RegionNames.LeftNavigationRegion}" VerticalAlignment="Stretch" > 


         <ContentControl.Template> 
          <ControlTemplate TargetType="ContentControl"> 

          <ContentPresenter Content="{TemplateBinding Content}" /> 

          <ControlTemplate.Triggers> 
            <Trigger Property="HasContent" Value="false"> 
             <Setter Property="Visibility" Value="Collapsed" /> 
            </Trigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </ContentControl.Template> 
        </ContentControl> 

      </s:NavigationPaneItem> 

     </s:NavigationPane> 
+1

응용 프로그램을 조금 더 추가 할 수 있습니까? 아마 xaml의 샘플 비트 – RockThunder

답변

0

나는 당신이 (당신이 지금 사용하는 등)이 있기 때문에의 시각적 트리 도우미를 사용할 필요가 두렵다 귀하의 컨트롤은 타사의 컨트롤이기 때문에 아마도 템플릿 재정의를 위해 봉인되어있을 것입니다.