在datagridview的单元格中调整位图图像的大小

时间:2012-04-27 09:49:02

标签: c# image image-resizing

仍然存在调整图像大小的问题。

使用c sharp.net 4.0 winforms和MS Visual Studio 2010。

这是我目前拥有的代码:

private void ShowArrow()
    {
        foreach (DataGridViewRow paretoRow in ParetoGrid.Rows)
        {
            if ((paretoRow.Cells["Pareto6"].Value != null) && (Convert.ToInt32(paretoRow.Cells["CurrentPareto"].Value) < (Convert.ToInt32(paretoRow.Cells["NewPareto"].Value))))
            {
                downArrow.Width = 2; 
                downArrow.Height = 2;
                paretoRow.Cells["p1"].Value = downArrow; 
            }
            else if ((paretoRow.Cells["Pareto6"].Value != null) && (Convert.ToInt32(paretoRow.Cells["CurrentPareto"].Value) > (Convert.ToInt32(paretoRow.Cells["NewPareto"].Value))))
            {
                //ParetoGrid.Rows[paretoRow.Index].DefaultCellStyle.BackColor = Color.LightGreen;
                paretoRow.Cells["p1"].Value = upArrow;
            }
        }
    }

但是当我尝试编辑图像大小时,它说图像是只读的? 这是一个调整图像大小的漂亮的衬垫吗?还是有更好的方法?

非常感谢

2 个答案:

答案 0 :(得分:1)

您可以检查图像对象的“只读”属性并继续操作。 假设你的变量是BitmapImage myImage。

bool isReadOnly = myImage.IsSealed;

还有另一种名为SetValue的方法。希望这会有所帮助。

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.aspx

答案 1 :(得分:0)

如果你有一个Image对象,你可以试试这个:

http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx

实际上不是单线解决方案,但它接近它。您可能希望事先生成调整大小的图像,然后再使用它。