![]() |
1
13
这就是我最后所做的。我宁愿在DATAGRID上使用这个属性,但由于没有这样的属性,所以我需要一个解决方案。
首先,我使用了父数据网格中的ActualWidth并删除了一个9的常量。一开始这很有效,但当垂直滚动条变为可见时失败了,所以我不得不使用多重绑定。
在转换器中,我使用另一个常量(16)来补偿可见的垂直滚动条(如果它是可见的)。
更新 我对解决方案做了一些改进,对ItemsPresenter使用ActualWidth,而不是DataGrid(其中ActualWidth不随可见滚动条的变化而变化),这样就不需要多个转换器和两个常量。
减常量转换器
|
![]() |
2
13
这里的答案就像是一个解决办法,所以我做了一些研究,并在Telerik论坛上找到了解决方案,因为我们使用了他们的RadGridView。结果发现这个解决方案也适用于DataGrid。 关键是将ScrollViewer.HorizontalScrollBarVisibility属性设置为Disabled,请参见下面的示例。
编辑: 一个副作用是,如果柱在水平方向上需要的空间大于它们被剪裁的空间。所以如果这是个问题,那么这个解决方案就不是最优的。 |
![]() |
3
4
这就是我最终所做的:将行详细信息宽度绑定到演示者的实际宽度,然后添加一个具有不同厚度的边框,以补偿演示者中是否存在垂直滚动条。这种方法对我很有效。样品xaml:
|
![]() |
4
2
你可以将MaxWidth绑定到
|
![]() |
5
2
谢谢 Meleak ,你的解决方案对我很有效。我们WPF新手的一小部分。请确保将转换器类声明为资源,以便可以在绑定表达式中引用它。 我把我的放在App.Xaml中,如下所示:
|
![]() |
6
1
为了节省其他人的一些挠头和试错时间: 在和弗雷德里克·赫布拉德最近的一次(2011年1月1日)争吵之后 solution 有一段时间我发现 转换器参数 价值应该是 6+[左边距}+[右边距] (即模板中最外层容器的边距)检查屏幕快照的放大后,我预计 6个 是每行左侧垂直条的宽度。 |
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 3 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 3 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 3 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 3 年前 |