trsing’s diary

勉強、読んだ本、仕事で調べたこととかのメモ。

XAMLでImageとMediaElementのSourceについて

なんかデザイナとImageMediaElementSourceの解釈違うようだったのでメモ

まとめ

Windows 10、VisualStudio2019、.Net Framework 4.7.2
画像、動画ともにビルドアクションはコンテンツで出力ディレクトリーにコピー

f:id:trsing:20210822160241p:plain
フォルダ構成

f:id:trsing:20210822163613p:plain
実行時の表示結果

f:id:trsing:20210822161734p:plain
Source。<!--O-->は表示された。<!--X-->は表示されなかった。

f:id:trsing:20210822162256p:plain
デザイナの表示

  • Image相対パス.xamlファイルが基準。/で始まる場合は実行ファイルが基準。 っぽい。
  • MediaElemen相対パスは実行ファイルが基準。/で始まる場合は(たぶん実行ファイルがある)ドライバのルートが基準。っぽい。
  • デザイナの場合Imageと同じ結果になったけどタイミングによって更新されたり更新されなかったり変な挙動してたのでよくわからん(めんどくさくなった)。プロジェクトに登録されたものを探す、なければディレクトリのルートを見に行くっぽい。

MSDN

ImageMediaElementSourceの説明が違うので仕様か。

Image

The source of the drawn image.

MediaElement

The URI that specifies the source of the element.

その他

Imageの場合プロジェクトに登録していない画像ファイルは実行時に表示されなかった(D:/~みたいに絶対パスで書いた場合は表示された)。MediaElementの場合は登録してなくても表示された。

ImageMediaElementは似たものではなく全く違ったもの、という気がしてきた。