Высота и ширина изображения в Windows Phone 7 - PullRequest
0 голосов
/ 25 февраля 2012

Я новичок в Windows Phone,

Сейчас я делаю пример, просто пытаюсь показать изображение на панели стека.

Я хочу показать изображение в его реальной высоте и ширине,Но фактическая высота и ширина возвращают 0.

На самом деле изображение высотой 360px и шириной 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 ]

1 голос
/ 25 февраля 2012

Они равны нулю, пока ПОСЛЕ вызова этого myImage.Source = bit; До этого myImage - это просто пустое изображение, которое не имеет никакого содержимого.

0 голосов
/ 25 февраля 2012

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
...