2010-07-27 62 views
0

我想在代码隐藏的数据列表中设置图像的宽度和高度。在代码隐藏设置图像宽度/高度 - ASP.NET,C#

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

由于某种原因,我总是得到0的宽度和高度。 Image1.ImageUrl是我所期望的,尽管。有任何想法吗?图像是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); 
    } 

回答

1

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

根据文件类型的不同,.NET可能有一个解码器或已经能够加载它。将它加载到Bitmap然后查询那里的宽度和高度。

0

你试过声明/定义onload处理的图像,并在那里设置高度/宽度?

2

上面的代码引用了一个图像控件,它更可能不会指定宽度和/或高度。

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

1

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

随着DIMAGE
      .WIDTH = 50%
      .Height = 50%
结束随着

我与设置在我的XAML图像高度以及离开试了既出来。

- 为布局目的而编辑。

相关问题