Windows Phone 7中的图像高度和宽度问题

时间:2012-02-25 05:15:26

标签: silverlight image windows-phone-7 height windows-phone

我是Windows手机的新手,

现在我正在尝试在堆栈面板中显示图像。

我想以实际的高度和宽度显示图像。但实际的高度和宽度返回0。

实际上图像的高度为360像素,宽度为480像素。

我在下面发布了我的代码。请帮助。

感谢。

MaingPage.xaml

<Grid x:Name="LayoutRoot" Background="Transparent">
    <StackPanel Name="imagePanel" ></StackPanel>
</Grid>

MainPage.xaml.cs中

namespace ImageResizing
{
public partial class MainPage : PhoneApplicationPage
{
    Image myImage;
    BitmapImage bit;

    // Constructor
    public MainPage()
    {
        InitializeComponent();

        myImage = new Image();
        Uri uri = new Uri("Penguins.jpg", UriKind.Relative);
        bit = new BitmapImage(uri);
        myImage.Source = bit;

        myImage.Width = myImage.ActualWidth; // Returns 0
        myImage.Height = myImage.ActualHeight; // Returns 0

        myImage.Width = bit.PixelWidth;  // Also tried this. It returns 0 too
        myImage.Height = bit.PixelHeight; // Also tried this. It returns 0 too


        myImage.Stretch = Stretch.Fill;
        imagePanel.Children.Add(myImage);
    }
  }
}

2 个答案:

答案 0 :(得分:1)

在调用myImage.Source = bit;之后,它们为零。在此之前,myImage只是一个没有任何内容的空图像。

答案 1 :(得分:0)

ActualHeight和ActualWidth是布局和渲染后的高度/宽度。当你得到它时,它还没有被绘制出来。

只是摆脱这部分,它应该工作:

    myImage.Width = myImage.ActualWidth; // Returns 0
    myImage.Height = myImage.ActualHeight; // Returns 0

    myImage.Width = bit.PixelWidth;  // Also tried this. It returns 0 too
    myImage.Height = bit.PixelHeight; // Also tried this. It returns 0 too