找回密码
 立即注册

QQ登录

只需一步,快速开始

来爱清
论坛元老   /  发表于:2015-4-3 11:17  /   查看:5977  /  回复:3
C1DataGrid显示时,如果文本过长会被截取。
1.如何设置,可以达到鼠标放上去能看到全部文本的效果?
2.如何设置,可以自动换行?

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-4-3 14:09:00
沙发
回复 1楼来爱清的帖子

1.你是需要展示Tooltip的效果么?
你可以使用LoadedCellPresenter事件来显示Tooltip。比如:
  1. void grid_LoadedCellPresenter(object sender, DataGridCellEventArgs e)
  2.       {
  3. if (e.Cell.Presenter.Content as TextBlock != null)
  4. {
  5.               ToolTipService.SetToolTip(e.Cell.Presenter, (e.Cell.Presenter.Content as TextBlock).Text);  
  6.       }
  7. }
复制代码


2.可以将需要自动换行的列的TextWrapping设置为TextWrapping.Wrap。
比如数据绑定的某列是Name,将此列设置为可以多行显示,代码参考:
  1. private void grid_AutoGeneratingColumn(object sender, C1.WPF.DataGrid.DataGridAutoGeneratingColumnEventArgs e)
  2.         {
  3.             if (e.Property.Name == "Name")
  4.             {
  5.                 e.Column.Width = new C1.WPF.DataGrid.DataGridLength(200);
  6. //多行
  7.                 e.Column.TextWrapping = TextWrapping.Wrap;
  8.             }
  9.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
来爱清
论坛元老   /  发表于:2015-4-3 14:49:00
板凳
回复 2楼Alice的帖子

1.是需要展示Tooltip的效果。您提供的LoadedCellPresenter事件来显示Tooltip效果我已实现。但发现了一个问题:如果是可编辑的列,修改了列内容后Tooltip内容不能随之更新。
请问是否可以在DataGridTextColumn 里直接设置呢?
  1. <c1:C1DataGrid.Columns>
  2.       <c1:DataGridTextColumn Header="姓名" Binding="{Binding Name}"/>
  3. </c1:C1DataGrid.Columns>
复制代码

2.在DataGridTextColumn 中设置TextWrapping属性,如下代码
  1. <c1:C1DataGrid.Columns>
  2.          <c1:DataGridTextColumn  Header="材料规格" Binding="{Binding MaterialName}" TextWrapping="Wrap"/>
  3. </c1:C1DataGrid.Columns>
复制代码

发现,有的列会正常回行,有的却不行。请看下图:列宽大一点显示不完整,列宽小一点却显示完整了


请问这是什么原因?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-4-3 16:45:00
地板
回复 3楼来爱清的帖子

1.可以。Style setter可以设置Tooltip,然后绑定列的值。
代码参考:
  1.   <c1:DataGridTextColumn .CellStyle>
  2.                         <Style TargetType="c1:DataGridCellPresenter">
  3.                             <Setter Property="ToolTip" Value="{Binding Name}" />
  4.                         </Style>
  5.                     </c1:DataGridTextColumn .CellStyle>
复制代码


2.我在如下路径的随机安装示例测试这行文字,没有重现你的问题。
\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.DataGrid\CS\DataGridSamples\DataGrid
在DataGridPage页面的Name列输入你的文字,没有重现问题。
你能提供必然重现问题的步骤,或是简单的示例,我只能重现该问题,才能帮你看看怎么解决。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部