2011年2月アーカイブ

 ホントは環境による処理の振り分けなんてしたくはないんですが、Silverlight側のバグへの対応という話になると、そう悠長なことも言っていられません。

 兄ちゃん、なんでMacの時だけWebBrowserコントロール消えてしまうん?

 ということで、Macの時だけ力技で対応することにしたのですが、Macかどうかの判定は以下のように行なっています。

if (Environment.OSVersion.Platform == PlatformID.MacOSX)
{
  // Macだけの処理
}

 本当にちなみにですが、MacでWebBrowserが消えてしまう(再描画されない)不具合への対応方法は、こちらのページを参考にしました。

 GIF画像の表示くらい普通に対応してくれればいいのにー!
 なんて文句を言っていても仕方が無いので、MS謹製ライブラリ「ImageTools」を使ってGIF画像を表示することにしたのですが、つまらないことで少しだけはまってしまったのでメモ。
 ImageToolsの入手は以下の公式サイトから。ライセンスはMs-PLです。
 http://imagetools.codeplex.com/

/*
▼AddReferencesが必要なDLL
ImageTools.dll // 当然必要なライブラリ本体
ImageTools.IO.Gif.dll // これを忘れる人はいないでしょう
ImageTools.IO.Png.dll // これが必要だと気づかずにはまった
ImageTools.Utils.dll // ToBitmapするのに必要
*/

// 初期化の際に一度だけ必要な処理
ImageTools.IO.Decoders.AddDecoder<GifDecoder>();

ExtendedImage eximg = new ExtendedImage();
// GIF画像読み込み完了時の処理
eximg.LoadingCompleted += (sender, args) =>
{
 Dispatcher.BeginInvoke(() =>
 {
  // image = XAML側に配置してあるImage
  image.Source = eximg.ToBitmap();
 });
};
// GIF画像読み込み開始
eximg.UriSource = new Uri("http://hoge.com/foo.gif", UriKind.Absolute);
1

このアーカイブについて

このページには、2011年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年7月です。

次のアーカイブは2011年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.0.3
ぎゅう♪ぎゅう♪ぎゅう♪ぎゅう♪ ぎゅう♪ぎゅう♪ ぎゅう♪ぎゅう♪