我怎么能够:
右对齐ID列中的文本
根据具有最长可见数据的单元格的文本长度使每个列自动调整大小?
这是代码:
感谢Kjetil,GridViewColumn.CellTemplate运行良好,自动宽度当然有效但是当使用长于列宽的数据更新ObservativeCollection"Collection"时,列大小不会自行更新,因此这只是一个解决方案.初始显示数据:
Kjetil Watne.. 97
要使每个列自动调整大小,可以在GridViewColumn上设置Width ="Auto".
要右对齐ID列中的文本,可以使用TextBlock创建单元格模板并设置TextAlignment.然后设置ListViewItem.HorizontalContentAlignment(使用ListViewItem上带有setter的样式)使单元格模板填充整个GridViewCell.
也许有一个更简单的解决方案,但这应该有效.
注意:该解决方案在CellTemplate中需要在Window.Resources中使用HorizontalContentAlignment = Stretch,在TextTemplate中使用TextAlignment = Right.
+1 for:
如果您忘记从GridViewColumn中删除DisplayMemberBinding,它也不起作用.那么模板就没有任何效果了. (7认同)
RandomEngy.. 35
如果内容的宽度发生变化,您将不得不使用这段代码来更新每一列:
private void ResizeGridViewColumn(GridViewColumn column) { if (double.IsNaN(column.Width)) { column.Width = column.ActualWidth; } column.Width = double.NaN; }
每次该列的数据更新时,您都必须触发它.
要使每个列自动调整大小,可以在GridViewColumn上设置Width ="Auto".
要右对齐ID列中的文本,可以使用TextBlock创建单元格模板并设置TextAlignment.然后设置ListViewItem.HorizontalContentAlignment(使用ListViewItem上带有setter的样式)使单元格模板填充整个GridViewCell.
也许有一个更简单的解决方案,但这应该有效.
注意:该解决方案在CellTemplate中需要在Window.Resources中使用HorizontalContentAlignment = Stretch,在TextTemplate中使用TextAlignment = Right.
如果内容的宽度发生变化,您将不得不使用这段代码来更新每一列:
private void ResizeGridViewColumn(GridViewColumn column) { if (double.IsNaN(column.Width)) { column.Width = column.ActualWidth; } column.Width = double.NaN; }
每次该列的数据更新时,您都必须触发它.
如果列表视图也在重新调整大小,那么您可以使用行为模式重新调整列的大小以适应完整的ListView宽度.与使用grid.column定义几乎相同
有关示例,请参阅以下链接并链接到源代码 http://lazycowprojects.tumblr.com/post/7063214400/wpf-c-listview-column-width-auto
我创建了以下类,并在需要的地方使用了所有应用程序代替GridView
:
///
/// Represents a view mode that displays data items in columns for a System.Windows.Controls.ListView control with auto sized columns based on the column content
///
public class AutoSizedGridView : GridView
{
protected override void PrepareItem(ListViewItem item)
{
foreach (GridViewColumn column in Columns)
{
// Setting NaN for the column width automatically determines the required
// width enough to hold the content completely.
// If the width is NaN, first set it to ActualWidth temporarily.
if (double.IsNaN(column.Width))
column.Width = column.ActualWidth;
// Finally, set the column with to NaN. This raises the property change
// event and re computes the width.
column.Width = double.NaN;
}
base.PrepareItem(item);
}
}
由于我有一个ItemContainerStyle,我必须将HorizontalContentAlignment放在ItemContainerStyle中
Tags | 热门标签RankList | 热门文章
- 1Swagger Editor集成到Git或GitHub
- 2使用java测量网页的总加载时间
- 3graphql可以返回聚合计数吗?
- 4将两个unordered_maps与重叠键合并
- 5使用OpenWeatherMap API密钥
- 6获取具有特定值的数组元素的索引
- 7Elasticsearch按内部命中排序父级doc count
- 8Oracle(+)外连接和常量值
- 9有关加载Google地图的问题 - SensorNotRequired
- 10Linq Select许多包括父项
- 11使用自定义日期检索最近3年的数据
- 12Python - 正在更改参数
- 13在sqlalchemy字段中强制值为大写的最佳方法
- 14如何在Python中在后台运行长时间运行的作业
- 15scala数据帧到RDD [array [String]]
- 16Nginx-rtmp模块和mpeg-dash(Dash行业dash.js)
- 17在Python3中将图像复制到剪贴板
- 18如何将Android Spinner下拉箭头移近它的发射文本
- 19在Django中实现python类的位置?
- 20Python 2.7 Openpyxl用户警告