【发布时间】:2011-08-04 20:43:22
【问题描述】:
当我进行以下设置时,宽度为 * 的最后一列会导致数据网格创建巨大的水平滚动条(将网格扩展到屏幕的多个宽度)。我不太确定为什么会这样,但我真的需要一种方法来避免这种情况。我不想用 * 长度“模拟”列。
edit:显然我不是唯一注意到这一点的人。 http://connect.microsoft.com/VisualStudio/feedback/details/559644/silverlight-4-datagrid-star-column-width
Xaml:
<ScrollViewer Padding="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" >
<sdk:DataGrid AutoGenerateColumns="False" x:Name="dg"/>
</ScrollViewer>
代码:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
dg.Columns.Add(new DataGridTextColumn { Binding = new Binding("A"), Header = "A" });
dg.Columns.Add(new DataGridTextColumn { Binding = new Binding("B"), Header = "B" });
dg.Columns.Add(new DataGridTextColumn { Binding = new Binding("C"), Header = "C" });
dg.Columns[2].Width = new DataGridLength(1, DataGridLengthUnitType.Star);
dg.ItemsSource = new[]
{
new I { A = "SAF", B = "SAF", C = "SAF" },
new I { A = "SAF", B = "SAF", C = "SAF" },
new I { A = "SAF", B = "SAF", C = "SAF" }
};
}
public class I
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
【问题讨论】:
-
为什么要把datagrid inscrollviwer?
-
我正在开发一个大型应用程序,并且网格位于一个框架内,该框架位于一个滚动查看器的内部。在某些情况下(例如,如果您有很多实际占用空间的列)您希望滚动行为。这是一个可重复的样本。请放心,如果我有它在滚动查看器中,它需要在滚动查看器中,如果它不需要在滚动查看器中,我会删除它。
标签: silverlight silverlight-4.0 datagrid scrollviewer