以编程方式隐藏WPF功能区标题

时间:2011-06-10 04:03:40

标签: c# wpf ribbon

我正在使用VS2010的WPF功能区应用程序。每个RibbonGroup都有一个标题。即使我将标题留空,功能区仍将为标题保留一个空白空间。如何以编程方式隐藏标题?

例如,我跟随Xaml:

<ribbon:RibbonTab x:Name="HelpTab"
                    Header="Help" FontSize="10">
    <ribbon:RibbonGroup x:Name="HelpGroup"
                        Header="Help Group" FontFamily="Verdana" FontWeight="Bold">
             <!-- ..... -->
        </ribbon:RibbonButton>
    </ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>

我想以编程方式隐藏由红色矩形标记的部分(标题文本和高度空间)。

enter image description here

我正在寻找一个C#代码隐藏解决方案,我可以隐藏文本和标题占用的空间(高度),如下所示:

// of course, this doesn't work    
HelpTab.HeaderStyle.Visibility = Visibility.Hide

2 个答案:

答案 0 :(得分:0)

您可以通过VisualTreeHelper完成此操作。只需将行MinHeight设置为0:

private void RibbonLoaded(object sender, RoutedEventArgs e)
{
  DependencyObject groupBorder = VisualTreeHelper.GetChild(Foobar, 0);
  Grid groupMainGrid = VisualTreeHelper.GetChild(groupBorder , 0) as Grid;
  if (groupMainGrid != null)
  {
    groupMainGrid.RowDefinitions[2].MinHeight = 0;
  }
} 

这假设您没有设置Header属性。行的高度默认设置为Auto。因此,如果您设置Header属性,您也可以将Height设置为0:

groupMainGrid.RowDefinitions[2].Height = 0;

答案 1 :(得分:0)

您始终可以创建堆栈面板而不是功能区组。