BitmapImage tempBitmap = new BitmapImage(onlineImageLocation);
かなり単純なコード。OnlineImageLocation はhttp://dantonybrown.com/brownsoft/SweepyCleaner.pngを参照します
しかし、構築後のビットマップ画像には、入力されたフィールドが含まれていません。PixelWidth と PixelHeight も 0 です。
何か案は?
ダニー
BitmapImage tempBitmap = new BitmapImage(onlineImageLocation);
かなり単純なコード。OnlineImageLocation はhttp://dantonybrown.com/brownsoft/SweepyCleaner.pngを参照します
しかし、構築後のビットマップ画像には、入力されたフィールドが含まれていません。PixelWidth と PixelHeight も 0 です。
何か案は?
ダニー
例えばこのように?
BitmapImage bmpImage = new BitmapImage(new Uri("http://dantonybrown.com/brownsoft/SweepyCleaner.png"));
MessageBox.Show(bmpImage.PixelWidth.ToString());
それは完全に理にかなっています。画像はオンデマンドで、背景に読み込まれます。ここには複数のオプションがあります。
BitmapImageをImageコントロールに割り当てます。ImageLoadedイベントが発生した後、プロパティにアクセスできます。
BitmapImage bmpImage = new BitmapImage(new Uri("http://dantonybrown.com/brownsoft/SweepyCleaner.png"));
bmpImage.ImageOpened += (sender, args) => Dispatcher.BeginInvoke(() => MessageBox.Show(
bmpImage.PixelWidth.ToString(CultureInfo.InvariantCulture)));
imageCtrl.Source = bmpImage;
CreateOptions.Noneを使用してBitmapImageをロードします。これにより、画像は引き続きバックグラウンドで読み込まれますが、読み込みを開始する前に画像をコントロールに割り当てる必要はありません。
BitmapImage bmpImage = new BitmapImage(new Uri("http://dantonybrown.com/brownsoft/SweepyCleaner.png"))
{CreateOptions = BitmapCreateOptions.None};
bmpImage.ImageOpened += (sender, args) => Dispatcher.BeginInvoke(() => MessageBox.Show(
bmpImage.PixelWidth.ToString(CultureInfo.InvariantCulture)));