gpt4 book ai didi

wpf - 如何在 WPF DataGrid 中的连续单元格之间强制零像素间隙

转载 作者:行者123 更新时间:2023-12-04 15:03:08 24 4
gpt4 key购买 nike

我正在 WPF 中构建一个应用程序以满足自定义需求。首先我选择了自定义控件,但后来发现我需要的大部分内容已经在 Datagrid Control 中实现了。但是有一个小故障:

Datagrid 的问题在于它 强制执行 最少 2 像素间隙 两个连续单元格之间(网格线的每一侧各 1 个)。为清楚起见,请看下图:

.
请注意两个连续单元格之间的 Datagrid 强制执行的 2 像素间隙:
http://img265.imageshack.us/img265/3545/figurem.png

(堆栈溢出不会让我在我的问题中添加图片,引用新用户的垃圾邮件保护策略)

.

这不符合我的要求,因为我希望内容看起来“连续”(不能有 2 个像素的间隙;我希望连接线看起来“连接”)。我尝试过使用 GridLinesVisibility,但没有帮助。 DataGrid 托管一个自定义控件,如下所示:

<DataGrid.Columns>
<DataGridTemplateColumn Width="25" Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentControl Content="{Binding Path=MyCustomControl}" Margin="0"></ContentControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

....
</DataGrid.Columns>

到目前为止,我已经尝试过:
  • 关闭 GridLine(在此处查看结果:http://img263.imageshack.us/img263/8602/figure2j.png)
  • 将内容属性的边距设置为 0。
  • 在 google 和 stackoverflow 上搜索
  • 查阅了一些书籍。

  • 但似乎什么也没有出现。

    是否有解决此/一些黑客或解决方法的解决方案,或者我是否必须从头开始创建所有内容?我在 C# 方面有不错的经验,但我是 WPF 的新手。

    请帮忙。

    最佳答案

    您需要做的是获取 DataGrid 的 DataGridCell 样式并将其 BorderThickness 设置为 0。它在默认样式中硬编码为 1,但幸运的是,很容易覆盖它:

    <Style TargetType="DataGridCell">
    <Setter Property="BorderThickness" Value="0" />
    </Style>

    我建议将其放入 DataGrid 的资源中,这样它只会影响那个网格,除非您希望它具有比这更广泛的范围。
    <DataGrid>
    <DataGrid.Resources>
    <Style TargetType="DataGridCell">...</Style>
    </DataGrid.Resources>
    ...
    </DataGrid>

    您也可以将其放置在其他位置,具体取决于您的具体需求。

    关于wpf - 如何在 WPF DataGrid 中的连续单元格之间强制零像素间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952276/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com