silverlight datagrid列宽

dengkz1 2010-05-16 07:35:43
<data:DataGrid x:Name="TList" Grid.Row="2" Grid.Column="0"
AutoGenerateColumns="False"
>
<data:DataGrid.Columns>
<data:DataGridTemplateColumn Header="信息" Width="Auto">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Width="Auto" >
<Grid Width="Auto">

怎样让"信息"这列的宽为100%,自适应窗口的宽度?
...全文
226 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
websco 2010-05-18
  • 打赏
  • 举报
回复
冷大大,DataGridLength 在Silverlight 3.0中和 GridLength 不一样,没有 GridUnitType.Star 这种 GridUnitType.Star。

昨晚你不是还说我正解来着么?
jv9 2010-05-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 websco 的回复:]
冷大大,DataGridLength 在Silverlight 3.0中和 GridLength 不一样,没有 GridUnitType.Star 这种 GridUnitType.Star。

昨晚你不是还说我正解来着么?
[/Quote]

我们两个说的没冲突哦,我列出来的是GridLength,我想解释*的意思,使用对比其他计量方法。而你说的是Datagrid的计量方法。 最终我们都是使用宽度设置为*,是按照比例取值达到效果哦。

<data:DataGridTemplateColumn Header="信息" Width="*">
jv9 2010-05-17
  • 打赏
  • 举报
回复
Silverlight控件尺寸设计,主要是三种方式:

第一种,绝对数值尺寸设置;

该设置是最简单的,但是是最不灵活的。例如上面例程代码中,可以直接设置列宽度为绝对数值:

<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="50"/>
</Grid.ColumnDefinitions>



第二种,自动数值尺寸设置;

该设置对宽度和高度赋值“Auto”,该Grid尺寸将会随着内部内容的增加而增加,这个设置方法是最常用的一种;

<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>



第三种,比例数值尺寸设置;

该设置对宽度和高度赋值"*",或者"2*",Grid将按照设置的比例倍数进行分割布局;

<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>

以上设置,将把Grid划分为两列,第二列宽度永远是第一列宽度的3倍。第一列永远是第二列的1/3宽度。

参考该文:http://www.silverlightchina.net/html/learn/2010/0321/873.html

按照上面的解释,使用
<data:DataGridTemplateColumn Header="信息" Width="*">
就可以达到ColumnHeader 100%宽度效果。
推荐帖主复制代码查看运行效果。
websco 2010-05-17
  • 打赏
  • 举报
回复
冷大大刚好上来了,让大神来说一下
dengkz1 2010-05-17
  • 打赏
  • 举报
回复
顶一下,有没有另一种解决方法,请指教一下
jv9 2010-05-17
  • 打赏
  • 举报
回复
1楼正解,支持。
sy527205079 2010-05-17
  • 打赏
  • 举报
回复
关注下
dengkz1 2010-05-17
  • 打赏
  • 举报
回复
难道3.0就不能100%了,是真的吗?
websco 2010-05-16
  • 打赏
  • 举报
回复
DataGridColumn.Width 是 DataGridLength 类型,在 Silverlight 3.0 中只有:

absolutePixelValue
绝对列宽的正数值。

Auto
启用 Auto 调整大小的文本字符串值,可同时根据单元格和列标题的内容调整 DataGrid 列的大小。

SizeToCells
启用 SizeToCells 调整大小的文本字符串值,可根据列中单元格的内容(不包括列标题)调整 DataGrid 列的大小。

SizeToHeader
启用 SizeToHeader 调整大小的文本字符串值,仅根据列标题的内容调整 DataGrid 列的大小。

这4种设置,但是在 Silverlight 4.0 中,则多了
Star 这种设置,意义和GridLength中的Star一样,也就是说在 Silverlight 4 中

<data:DataGridTemplateColumn Header="信息" Width="*">

就可以达到楼主的要求

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧