在后面的代码中设置图像宽度/高度 - ASP.NET,C#

时间:2010-07-27 18:01:36

标签: c# asp.net

我试图在代码隐藏中设置数据列表中图像的宽度和高度。

计划是根据宽度/高度做一些比这更复杂的事情,因此不能选择将aspx文件中的宽度和高度设置为50%。

出于某种原因,我的宽度和高度总是为0。 Image1.ImageUrl是我期望的。有任何想法吗? Image是System.Web.UI.Webcontrols.Image,而不是System.Drawing.Image。

    protected void DataList9_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        Image Image1 = (Image)e.Item.FindControl("Image1");

        double height = Image1.Height.Value;
        double width = Image1.Width.Value;
        height = height * 0.5;
        width = width * 0.5;

        Image1.Height = new Unit(height);
        Image1.Width = new Unit(width);
    }

4 个答案:

答案 0 :(得分:2)

上面的代码引用的图像控件很可能没有指定宽度和/或高度。

做你想做的事情我相信你需要获得图像的来源并使用GDI将其加载到内存中。然后你可以确定宽度和高度。然后,您就可以对高度和宽度进行调整,并应用于图像标记的属性。

答案 1 :(得分:1)

请注意,使用img标记时,默认情况下不会设置widthheight。在这种情况下,除非您设置WidthHeight,否则它们将为0(或未定义)。如果你需要实际的(图像,像素)宽度和高度,你需要通过将图像加载到内存中来发现它。

根据文件类型,.NET可能有解码器或已加载它的能力。将其加载到Bitmap,然后在那里查询宽度和高度。

答案 2 :(得分:1)

我不确定c#但是我可以在VB.net中以这种方式编码,所以我确信有一些equivelant,看起来它会解决你的意图,如果不是你的实际编码问题。

使用dImage
。宽= 50%
.Height = 50%

结束

我在我的xaml中设置图像高度以及将其留下来都尝试了。

- 为布局目的而编辑。

答案 3 :(得分:0)

您是否尝试为图像声明/定义OnLoad处理程序并在其中设置高度/宽度?​​