【问题标题】:How do I style the column header on a UWP CommunityToolkit DataGrid如何在 UWP CommunityToolkit DataGrid 上设置列标题的样式
【发布时间】:2018-08-30 19:28:59
【问题描述】:

我目前正在查看 UWP CommunityToolkit DataGrid。我已经阅读了这些文档,但我没有发现它们清楚地说明了如何应用 ColumnHeaderStyle。我不确定我应该在列标题中定位什么来设置我的风格。我希望更改背景和前景色。我还希望这些属性适用于整个标题,而不仅仅是单个列。

 <controls:DataGrid.ColumnHeaderStyle>
       <Style TargetType="">
             <Setter Property="" Value=""/>
       </Style>                                       
 </controls:DataGrid.ColumnHeaderStyle>

【问题讨论】:

  • 您说得对,您需要更新DataGridColumnHeaderStyle。您需要更改的内容取决于您需要的自定义/样式,最好提供有关您需要的样式的更多信息,以便我可以帮助您编写一些代码 sn-p。
  • @Dishant。感谢你的回复。我正在尝试更改整个标题的背景颜色(不仅仅是包含内容的列)。我还希望更改标题列中文本的前景色。
  • @Dishant。感谢你的回复。我正在尝试更改整个标题的背景颜色(不仅仅是包含内容的列)。我还希望更改标题列中文本的前景色。要更改背景颜色,我以边框为目标并选择背景作为属性并设置属性值。但是我得到一个例外,说该样式不能应用于该目标类型。我不确定我应该将目标类型设置为什么。如果我以文本块为目标来更改前景色,也会出现异常。
  • 根据DataGrid 样式,您可以更改DataGridColumnHeaderBackgroundBrushDataGridColumnHeaderForegroundBrush 以更改标题背景和前景。
  • @Dishant,再次感谢您的回复,并为我回来晚了道歉。我不明白我如何从数据网格中定位这些属性。您能否提供一个仅更改背景颜色的示例?

标签: c# uwp-xaml windows-community-toolkit


【解决方案1】:

这个让我困惑了一段时间,但我最终发现你需要添加另一个 XML 命名空间声明才能定位列标题。

<Application
    x:Class="MyApp"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
    xmlns:controlsprimitives="using:Microsoft.Toolkit.Uwp.UI.Controls.Primitives">

所以在这种情况下,我只是附加了:

xmlns:controlsprimitives="using:Microsoft.Toolkit.Uwp.UI.Controls.Primitives"

然后你可以用这个目标创建一个样式:

<Style x:Key="ColumnHeaderStyle" TargetType="controlsprimitives:DataGridColumnHeader">
    <!-- style properties -->
</Style>

(然而,在撰写本文时,出于某种原因,这样做似乎存在奇怪的样式行为。)

【讨论】:

  • 为清楚起见,您可以添加到您的答案中:所需的 nuget 包同时是 .Controls 和 .Controls.DataGrid
【解决方案2】:

您可以在 App.xaml 中覆盖 DataGridColumnHeaderBackgroundBrushDataGridColumnHeaderForegroundBrush,如下所示:

<SolidColorBrush x:Key="DataGridColumnHeaderBackgroundBrush" Color="#FFCB2128" />
<SolidColorBrush x:Key="DataGridColumnHeaderForegroundBrush" Color="#FFB03060" />

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2011-12-18
    • 2010-12-19
    • 2012-01-25
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多