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

标签 c# wpf ribbon

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

例如,我有以下 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

最佳答案

您可以通过 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;

关于c# - 以编程方式隐藏 WPF 功能区标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6301850/

相关文章:

c# - 互斥复选框 - C#、MVVM

c++ - 如何以编程方式禁用按钮或使用 Office 功能区 UI 从下拉列表中添加/删除项目

c# - 功能区更改标题文本颜色

C# 'Newtonsoft.Json.Linq.JValue' 不包含 'Contains' 的定义

c# - 插入自定义实体状态代码

c# - 仍然需要帮助理解为什么 Ninject 可能比手动 DI 更好

excel - 独立启用/禁用功能区控件

c# - 带有 ASP.NET Web 应用程序的 Bluemix 服务

c# - 如何重用 WPF 样式?

c# - 在 WPF 装饰器中绘制虚线