Silverlight で画像を表示する

ど忘れしていたので、自分用にメモ。XAML ではなく C# コードで設定する方法です。

using System;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace ImageSample
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();

            // 表示する画像の URI
            Uri uriSource = new Uri(
                "http://img.f.hatena.ne.jp/images/fotolife/g/griefworker/20091031/20091031113723.jpg",
                UriKind.RelativeOrAbsolute);

            // Image コントロールに表示するソース
            ImageSource source = new BitmapImage(uriSource);

            // Image コントロールにセット
            Image image = new Image();
            image.Source = source;

            // Grid に追加
            this.LayoutRoot.Children.Add(image);
        }
    }
}

BitmapImage クラスを使うのがポイント。XAML だと画像の URL を指定するだけですが、C# コードだと一手間必要になります。

試しに、食べ歩きで撮った写真を表示してみました。

f:id:griefworker:20091103162242p:image

ちゃんと Silverlight で表示されていますね。その証拠にコンテキストメニュー付きw