0

xamlで自分のイメージをそのように宣言できます

<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanelx" Grid.Row="1" Margin="0,0,0,0">
    <Image x:Name="MyImage" Height="150" HorizontalAlignment="Left" Margin="141,190,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="200" />
</Grid>

次のように、.xaml.cs を介して分離ストレージからイメージを読み込むことができます。

void loadImage()
{
    // The image will be read from isolated storage into the following byte array

    byte[] data;

    // Read the entire image in one go into a byte array

    using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
    {
        using (IsolatedStorageFileStream isfs = isf.OpenFile("0.jpg", FileMode.Open, FileAccess.Read))
        {
            data = new byte[isfs.Length];
            isfs.Read(data, 0, data.Length);
            isfs.Close();
        }
    }

    MemoryStream ms = new MemoryStream(data);
    BitmapImage bi = new BitmapImage();
    bi.SetSource(ms);

    Image image = new Image();
    image.Height = bi.PixelHeight;
    image.Width = bi.PixelWidth;

    image.Source = bi;    
}

MyImageと入力すると。作成したばかりの画像に設定する方法が見つかりません。どなたかアドバイスいただけませんか?

4

1 に答える 1

6
void loadImage() { // The image will be read from isolated storage into the following byte array

        byte[] data;

        // Read the entire image in one go into a byte array

        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream isfs = isf.OpenFile("0.jpg", FileMode.Open, FileAccess.Read))
            {
                data = new byte[isfs.Length];
                isfs.Read(data, 0, data.Length);
                isfs.Close();
            }
        }

        MemoryStream ms = new MemoryStream(data);
        BitmapImage bi = new BitmapImage();
        bi.SetSource(ms);

        MyImage.Source = bi;    
    }
}

を設定する必要がありますMyImage.Source = bi;。それだけだった

そして少しリファクタリング:

void loadImage() { 
        BitmapImage bi = new BitmapImage();

        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream isfs = isf.OpenFile("0.jpg", FileMode.Open, FileAccess.Read))
            {
                bi.SetSource(isfs);
            }
        }

        MyImage.Source = bi;    
    }
}
于 2012-04-26T12:54:24.007 に答える