1
我有一个WPF应用程序中的控件,我需要折叠一个元素的元素没有暴露,所以我需要用Loaded事件这样的代码折叠它。风格与二传手代替代码
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;
我的问题,是有办法有风格和setter和如何找到在视觉树unamed元素来做到这一点。
编辑
代码背后
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;
}
XAML
<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>
你可以添加更多的应用程序?也许是一个XAML的样本 – RockThunder