【问题标题】:Trying to change BorderThickness in DataGrid ColumnHeader尝试更改 DataGrid ColumnHeader 中的 BorderThickness
【发布时间】:2023-03-13 15:12:01
【问题描述】:

我正在使用一个名为 MahApps Metro 的包,我正在尝试更改 DataGrid 的样式以更改 ColumnHeader 的默认 BorderThickness。

可以在此处找到 MahApps Metro DataGrid 控件:https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Styles/Controls.DataGrid.xaml

我尝试使用自定义样式访问的部分是:

<Border x:Name="BackgroundBorder"
        BorderThickness="0,0,0,3"
        Grid.ColumnSpan="2"
        Background="{TemplateBinding Background}"
        BorderBrush="{TemplateBinding BorderBrush}" />

目前我有:

<Style TargetType="DataGridColumnHeader" x:Key="GeledigdHeader" BasedOn="{StaticResource MetroDataGridColumnHeader}">
    <Setter Property="HorizontalContentAlignment" Value="Right"/>
    <Setter Property="BorderBrush" Value="#953735"/>
</Style>

这会正确更改颜色,但现在我想更改厚度,显然仅使用 Property="BorderThickness" 不起作用..

【问题讨论】:

    标签: c# wpf xaml datagrid mahapps.metro


    【解决方案1】:

    好吧,如果您查看那里的样式,您将无法通过绑定显式访问 BorderThickness。既然你有样式,你可以在其中添加这一行

    <Border x:Name="BackgroundBorder"
            BorderThickness="0,0,0,3"
            Grid.ColumnSpan="2"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}" 
            BorderThickness="{TemplateBinding BorderThickness}"/>
    

    【讨论】:

    • 我宁愿不编辑 MahApps 地铁控制本身,因为每次更新后我都必须重新编辑
    • 嗯,唯一的选择是更改您的样式中的控件模板或在代码中执行此操作,通过名称或我认为的构造查找元素。虽然我相信最佳实践是如果您不喜欢某个控件模板,您可以添加自己的样式来更改该控件模板。既然是github代码,也可以问一下为什么列头不暴露边框粗细。
    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2023-03-05
    • 2016-01-14
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多