我在网格中添加了一个GridImageColumn,并正在为其添加图像。似乎列的宽度(当我设置ColumnSizer =“ Auto”时)设置为我从中提取图像的URL的长度,而不是实际的图像大小。如果我使用一些非常短的网址,则列的宽度也非常小。
这是预期的吗?我是否需要显式设置列的宽度?我想要的是使该列自动成为该列中最宽图像的宽度。
这是网格:
<syncfusion:SfDataGrid x:Name="dataGrid" ItemsSource="{Binding TestItems}" ColumnSizer="Auto">
<syncfusion:SfDataGrid.Columns>
<syncfusion:GridImageColumn
MappingName="TEST"
HeaderText="TEST"
Stretch="None"
TextAlignment="Center"
ValueBinding="{Binding Path=ImagePath, Converter={StaticResource StringToImageConverter}}" />
</syncfusion:SfDataGrid.Columns>
</syncfusion:SfDataGrid>
这里是StringToImageConverter。它只是获取BitmapImage并返回它:
class StringToImageConverter : IValueConverter
{
private const string UriPrefix = "https://www.someprefix.com";
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
string imageName = value is string ? UriPrefix + value : string.Empty;
return new BitmapImage(new Uri(imageName, UriKind.RelativeOrAbsolute));
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
}
结果看起来像这样(图像的宽度为112,URL很长,基本上与下面的屏幕快照中的列一样宽):
答案 0 :(得分:0)
当ColumnSizer设置为Auto时,我们无法使用GridImageColumn重现报告的大小调整问题。我们已经附上了我们在最终版本16.3.0.21中测试过的示例,您可以从下面的链接中找到该示例
如果您仍然可以重现该问题,那么请您将修改后的样本还原给我们,以便在我们最终重现所报告的问题,从而我们可以尽早分析并为您提供适当的解决方案。
关于, 迪瓦瑟尔万
注意:我正在为Syncfusion工作。