社区
其他技术讨论专区
帖子详情
WPF DataGrid 自动换行
weixin_38051479
2019-06-08 02:42:35
new SqlDataAdapter().Fill(dataTable);
System.Windows.Controls.DataGrid.ItemsSource = dataTable.DefaultView;
通过这种方式将 DataTable 绑定到 DataGrid 中并显示,如何让单元格中,内容超出列宽的文本自动换行。
...全文
387
4
打赏
收藏
WPF DataGrid 自动换行
new SqlDataAdapter().Fill(dataTable); System.Windows.Controls.DataGrid.ItemsSource = dataTable.DefaultView; 通过这种方式将 DataTable 绑定到 DataGrid 中并显示,如何让单元格中,内容超出列宽的文本自动换行。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38102396
2019-06-10
打赏
举报
回复
那就用 event 來做
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var table = new DataTable(); table.Columns.Add("Description"); table.Columns.Add("Name"); for(int i =0; i < 10; i ++) { var row = table.NewRow(); row[0] = $"PPPPPPP {i}, KKKKKKKKKK {i}"; row[1] = i.ToString(); table.Rows.Add(row); } dataGrid.ItemsSource = table.DefaultView; } private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.Column is DataGridTextColumn column) { var style = new Style(typeof(TextBlock)); style.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap)); column.ElementStyle = style; } } }
<Window x:Class="WpfDataGridTextWrappingSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfDataGridTextWrappingSample" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <DataGrid AutoGenerateColumns="True" x:Name="dataGrid" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" /> </Window>
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
weixin_38069146
2019-06-10
打赏
举报
回复
那就用 event 來做
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var table = new DataTable(); table.Columns.Add("Description"); table.Columns.Add("Name"); for(int i =0; i < 10; i ++) { var row = table.NewRow(); row[0] = $"PPPPPPP {i}, KKKKKKKKKK {i}"; row[1] = i.ToString(); table.Rows.Add(row); } dataGrid.ItemsSource = table.DefaultView; } private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.Column is DataGridTextColumn column) { var style = new Style(typeof(TextBlock)); style.Setters.Add(new Setter(TextBlock.TextWrappingProperty, TextWrapping.Wrap)); column.ElementStyle = style; } } }
<Window x:Class="WpfDataGridTextWrappingSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfDataGridTextWrappingSample" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <DataGrid AutoGenerateColumns="True" x:Name="dataGrid" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" /> </Window>
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
weixin_38101966
2019-06-09
打赏
举报
回复
你好,DataTable 中的内容是未知的,无法提前写好一个类,及在 xaml 中写好 DataGridTextColumn。
如果是这种方式,我是否需要这样做:
在后台遍历 DataTable,自动创建 DataGridTextColumn 并添加到 DataGrid.Columns.Items 中。
weixin_38096180
2019-06-08
打赏
举报
回复
<DataGrid Margin="16" ItemsSource="{Binding People}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="姓名" Width="80" Binding="{Binding Name, Mode=TwoWay }"> <DataGridTextColumn.ElementStyle > <Style TargetType="TextBlock" > <Setter Property="Foreground" Value="Blue"/> <Setter Property="TextWrapping" Value="Wrap" /> </Style> </DataGridTextColumn.ElementStyle> <DataGridTextColumn.EditingElementStyle > <Style TargetType="TextBox" > <Setter Property="Foreground" Value="Red"/> <Setter Property="TextWrapping" Value="Wrap" /> </Style> </DataGridTextColumn.EditingElementStyle> </DataGridTextColumn>
自訂 Element Style 類似上方的 xaml
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/
GridViewHeaderRowPresenter中不可调整大小的列
在Windows Presentation Foundation (
WPF
) 中,GridView 是
DataGrid
控件的一个重要组成部分,它用于显示数据集合,并且可以通过GridViewHeaderRowPresenter提供一个可定制的、交互式的列头。标题描述了如何在...
WPF
页面布局DEMO
- `WrapPanel`:元素按行或列
自动换行
,常用于创建列表或菜单。 2. **界面操作** 在
WPF
中,可以通过事件处理程序与用户进行交互。例如,`MouseLeftButtonDown` 可以响应鼠标左键点击事件,`KeyDown` 可以处理键盘...
wpf
布局管理代码示例
WrapPanel是另一种线性布局,但它会在达到容器边界时
自动换行
。这在显示多列项目列表时非常实用,例如,当窗口缩小或增加时,项目会自动重新排列。 5. Canvas布局: Canvas是最基础的布局,它允许绝对定位子元素。...
WPF
基础(标准)控件库模板
WPF
的强大之处在于其数据绑定机制,它可以将UI元素直接与数据源关联,实现视图和模型的自动同步。在开发过程中,通常会结合Model-View-ViewModel(MVVM)设计模式,以提高代码的可测试性和可维护性。 综上所述,...
(19)Silverlight 2.0新增加类控件介绍
StackPanel按照垂直或水平方向堆叠元素,而WrapPanel则会在一行内排列元素,当空间不足时
自动换行
。 7. **MediaElement**:MediaElement控件用于播放音频和视频内容,支持流媒体和本地媒体文件,为富媒体应用提供了...
其他技术讨论专区
473
社区成员
791,201
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章