我是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);
}
}
}
答案 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