c# - UWP中数据网格的中心列标题
问题描述
我试图在 DataGrid 中居中列标题。要在 UWP UI 中添加 DataGrid,我正在使用 nuget 包“Microsoft.Toolkit.Uwp.UI.Controls.DataGrid”,如 microsoft 文档链接中所述,请在此处输入链接描述。我尝试在这里搜索,但只有 WPF 的解决方案在此链接中,在此处输入链接描述。
在这段代码中,我不能使用 TargetType="DataGridColumnHeader"。
<controls:DataGrid.Columns>
<controls:DataGridTextColumn Header="Area Name" Binding="{Binding Height_m}" Width="*">
<controls:DataGridTextColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</controls:DataGridTextColumn.HeaderStyle>
</controls:DataGridTextColumn>
</controls:DataGrid.Columns>
它显示异常:名称空间“使用:Microsoft.Toolkit.Uwp.UI.Controls”中不存在名称“DataGridColumnHeader”。
解决方案
DataGridColumnHeader
不在Microsoft.Toolkit.Uwp.UI.Controls
命名空间下,而是在Microsoft.Toolkit.Uwp.UI.Controls.Primitives
命名空间下。
所以需要添加对应的命名空间引用:
xmlns:prim="using:Microsoft.Toolkit.Uwp.UI.Controls.Primitives"
...
<controls:DataGrid.ColumnHeaderStyle>
<Style TargetType="prim:DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="MinWidth" Value="200" />
</Style>
</controls:DataGrid.ColumnHeaderStyle>
设置为更好的MinWidth
查看居中效果,如果不需要,可以删除。
但是,由于列的宽度受列内容的影响,可能会观察到表头没有居中,这时可以考虑设置一个MinWidth
.
谢谢
推荐阅读
- symfony - Twig:如何使用基于值的集成 if 条件编写 for 循环
- ruby-on-rails - ShopifyAPI Gem 计算退款
- asp.net - 使用 IdentityServer4 构建 STS,向 AngularJS 客户端提供 JWT 令牌,保护 .NET API;为什么授权失败?
- windows - 使用 TCL_MEM_DEBUG 编译时应用程序崩溃
- flutter - 如何使用堆栈小部件进行滚动?
- visual-studio - Visual Studio 2019 重新下载 Azure Function CLI 工具
- javascript - 我如何使用 puppeteer 登录这个网站?
- javascript - angularjs中的n次forEach
- java - 如何让算法在 Java 中更有效地查找集合中的重复对象?
- google-sheets - 在 Google 表格中按名称和日期生成工作时间