ImageTools ライブラリ (imagetools.codeplex.com) を使用して、外部 URL から画像を読み込みます。
<Canvas x:Name="LayoutRoot" Background="Blue"
Width="466" Height="204" >
<Image Name="theImage" />
<Button x:Name="btnTest" Canvas.Top="0" Canvas.Left="-200" Click="btnTest_Click"
Width="100" Height="23"
Content="Test Button">
</Button>
</Canvas>
初期化:
public MainPage()
{
InitializeComponent();
Encoders.AddEncoder<PngEncoder>();
Decoders.AddDecoder<PngDecoder>();
Encoders.AddEncoder<JpegEncoder>();
Decoders.AddDecoder<JpegDecoder>();
}
それで:
private void btnTest_Click(object sender, RoutedEventArgs e)
{
ExtendedImage ei = new ExtendedImage();
// ei.UriSource = new Uri(@"https://www.google.com/images/srpr/logo3w.png"); // NOT working
ei.UriSource = new Uri(@"/Images/header.png", UriKind.Relative); // Working
ei.LoadingCompleted += new EventHandler((ss, ee) =>
{
Dispatcher.BeginInvoke(() =>
{
theImage.Source = ei.ToBitmap();
});
});
}
ローカル ファイルの読み込み/Image/header.png
は機能していますが、外部 URL 画像 ( https://www.google.com/images/srpr/logo3w.png
) の読み込みはまったく機能していません。
テスト ボタンをクリックすると、LayoutRoot キャンバスが消えます。
ただし、この議論によると: http://imagetools.codeplex.com/discussions/250624 外部 URL 画像の読み込みは機能するはずです。