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# - AllowTransparency 使过扫描最大化

    德尔福。如何禁用 TFileOpenDialog 和 TOpenDialog 的 Vcl 主题

    asp.net - Css 样式停止在部分回发上工作

    delphi - 透明组盒

    c# - 如何防止控件从其父 GroupBox 继承 Font

    wpf - ViewModel 应该在 MVVM 模式中引用哪些类型的对象?

    c# - 如何在 OOP 中模拟类似银行的账户?

    c# - Entity Framework : Create and update related objects in WPF

    javascript - TinyMCE 在保存时添加样式

    python - 如何用 HTML 表达式设置 QGroupBox 的标题? (Python)