wpf - 没有标题空间的WPF GroupBox

标签 wpf styles groupbox

简单,我想要一个没有标题空间的GroupBox
最接近的是边框,但是“默认情况下”边框与组框的样式不同。
获得所需的GroupBox的最简单方法(最少的xaml /代码)是什么?
谢谢

最佳答案

如果您真的不想要边框,那么可以使用以下两种解决方案:

(1)混合编辑模板:

  • 右键单击GroupBox>编辑模板>编辑副本>确定
  • 搜索部分
      <Border.OpacityMask>
           <MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
                ......
           </MultiBinding>
      </Border.OpacityMask>
    
  • 删除此(上面提到的)部分。.您刚刚删除了“gap”
  • 现在,如果您不设置 header (如示例所示),它将可以使用。但是,如果您设置标题,它将放在边框后面。因此,要纠正此问题,只需在包围刚删除的部分的边框中设置Panel.ZIndex="-1"(看起来像<Border BorderBrush="White" BorderThickness= ...)


  • (2)使用重复的GroupBox并将其水平翻转并将其放置在原始groupbox下:
  • 将此代码放在您的分组框下方(假设您的分组框名称为'OriginalGroupbox)
     <GroupBox Header="" Focusable="False" Panel.ZIndex="-1" 
               Width="{Binding ActualWidth, ElementName=OriginalGroupbox}" 
               Height="{Binding ActualHeight, ElementName=OriginalGroupbox}" 
               IsEnabled="{Binding IsEnabled, ElementName=OriginalGroupbox}"
               RenderTransformOrigin="0.5,0.5">
               <GroupBox.RenderTransform>
                    <ScaleTransform ScaleX="-1"/>
               </GroupBox.RenderTransform>
     </GroupBox>
    
  • 将这两个GroupBox都用Grid括起来,如下所示:
    <Grid>
         <GroupBox x:Name="OriginalGroupbox" Header="Mihir" ...>
            ...
         </GroupBox>
         <GroupBox Header="" Width="{Binding ActualWidth, ElementName=OriginalGroupbox}" ...>
            ...
         </GroupBox>
    </Grid>
    
  • 关于wpf - 没有标题空间的WPF GroupBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110148/

    相关文章:

    c# - 自动适应列表框子项的宽度

    vb.net - 删除 GroupBox 内的控件

    wpf - 拉伸(stretch)空的 WPF ListView 以占用剩余空间

    wpf - 是否可以使用 setter 将属性返回到其默认值?

    android - 如何使用 Sherlock 操作栏主题将溢出菜单项的文本颜色更改为不同的颜色

    javascript - 子菜单上方的水平菜单样式 "spill"

    c# - 使用视觉状态时 GroupBox 标题背景不更新

    wpf - 在代码中创建DataTemplate和DataTrigger

    WPF - 当绑定(bind)不在字符串中时附加绑定(bind)调试

    c# - PSD 到 WPF XAML : Import is messed up