首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改“组框”样式

如何更改“组框”样式
EN

Stack Overflow用户
提问于 2017-03-23 09:29:16
回答 2查看 4.6K关注 0票数 0

这是我的GroupBox

代码语言:javascript
运行
复制
<GroupBox 
    Header="My header"
    Background="Transparent"
    Foreground="Gainsboro"
    BorderBrush="Gainsboro" />

我有几件事我想改变/解决:

  1. Foreground仍然是黑色的,尽管我已经改变了它。
  2. 我的boder围绕着Header:为了实现这种风格,我想删除它( headerborder之上):

  1. 所有标头都带有大写字母。

编辑:

添加用户@mm8 8建议的style后,结果如下:

为什么我能看到重复的边框?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-23 09:45:29

创建自己的控件集以具有完全控件,类似于以下内容:

代码语言:javascript
运行
复制
<Grid Width="100" Height="200" Background="DodgerBlue">
    <Grid.RowDefinitions>
        <RowDefinition Height="20"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Border BorderThickness="1" BorderBrush="Gainsboro">
        <TextBlock Foreground="Gainsboro">Header</TextBlock>
    </Border>

    <Border Grid.Row="1" BorderThickness="1" BorderBrush="Gainsboro">
        <!--Content-->
    </Border>
</Grid>
票数 2
EN

Stack Overflow用户

发布于 2017-03-23 11:26:02

可以重写GroupBox的模板。

代码语言:javascript
运行
复制
<GroupBox Header="My header" Style="{x:Null}">
    <GroupBox.Template>
        <ControlTemplate TargetType="{x:Type GroupBox}">
            <Grid SnapsToDevicePixels="true">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="6"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="6"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="6"/>
                </Grid.RowDefinitions>
                <Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3"/>
                <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" Grid.ColumnSpan="4" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
                    <Border.OpacityMask>
                        <MultiBinding ConverterParameter="7">
                            <MultiBinding.Converter>
                                <BorderGapMaskConverter />
                            </MultiBinding.Converter>
                            <Binding ElementName="Header" Path="ActualWidth"/>
                            <Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
                            <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
                        </MultiBinding>
                    </Border.OpacityMask>
                    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
                        <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
                    </Border>
                </Border>
                <Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2" Background="LightGreen" BorderBrush="Black" CornerRadius="2" BorderThickness="1">
                    <ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                </Border>
                <ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
            </Grid>
        </ControlTemplate>
    </GroupBox.Template>
    <TextBlock>content...</TextBlock>
</GroupBox>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42971991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档