Silverlight アプリケーションにイメージをロードしています。このイメージは、テクスチャ マップとして 3D モデルに適合します。画像属性を取得する必要があります。そのために、次のように ImageOpened イベントを使用しています。
public MainPage()
{
BitmapImage img = new BitmapImage(new Uri("imagens/textura.jpg", UriKind.Relative));
img.ImageOpened += new EventHandler<RoutedEventArgs>(img_ImageOpened);
img.ImageFailed += new EventHandler<ExceptionRoutedEventArgs>(img_ImageFailed);
imageBrush.ImageSource = img;
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
this.MouseLeftButtonUp += new MouseButtonEventHandler(MainPage_MouseLeftButtonUp);
(...)
その後:
private void img_ImageOpened(object sender, RoutedEventArgs e)
{
BitmapImage i = sender as BitmapImage;
ImgSize.Width = i.PixelWidth;
ImgSize.Height = i.PixelHeight;
MessageBox.Show("LOADED IMAGE SIZE\n W:" + ImgSize.Width.ToString() + " H:" + ImgSize.Height.ToString());
}
メッセージ ボックスには、読み込まれた画像の正しい値が表示されています。しかし、これはシーンがロードされた後に実行されるため、サイズは常にデフォルト (0,0) です ... これを修正する方法がわかりません。デバッガーを実行しました。シーンとモデルがレンダリングされ、画像の幅と高さがゼロになっていることに気付きました。この後、イベントが発火するのですが……わかりません。
前もって感謝します、
ホセ