web-dev-qa-db-ja.com

XAML画像ソースプロパティに「/ MyApp;コンポーネント」が含まれているのはなぜですか?

私はWindowsPhoneアプリを開発しています。

画像を使用していますが、[プロパティ]パネルを使用して画像を選択すると、次のXAMLが表示されます。

<Image x:Name="GameImage" Margin="8" Source="/MyApp;component/Assets/Icons/GameImage.png"/>

なぜ「/MyApp;component/... "?(もっと良い方法はありますか?)

私がやろうとするとImage.Source="Assets/Icons/GameImage.png"なぜそれが機能しないのですか?

13
VansFannel

これは、イメージのビルドアクションがResourceに設定されているためです(これがデフォルトです)。これをContentに切り替えると、XAMLで次のようにソースを設定できます。

<Image x:Name="GameImage" Margin="8" Source="/Assets/Icons/GameImage.png"/>

コードで設定するには、次のようにします。

BitmapImage tn = new BitmapImage();
tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/Icons/GameImage.png", UriKind.Relative)).Stream);
Image.Source = tn;

パフォーマンス上の理由から、コンテンツを使用する必要があります。詳細については、この記事を参照してください: http://www.windowsphonegeek.com/tips/wp7-working-with-images-content-vs-resource-build-action

39
theChrisKent

埋め込みリソースとしてマークされたコンテンツはすべて、アセンブリから読み込まれます。したがって、使用サイトは、リソースが埋め込まれているアセンブリを指定することを知っている必要があります。あなたの場合、これはMyAppです。

0
tam

追加することを忘れないでください:

using System.Windows.Media.Imaging;

BitmapImage tn = new BitmapImage();
tn.SetSource(Application.GetResourceStream(new Uri(@"Assets/Icons/GameImage.png", UriKind.Relative)).Stream);
Image.Source = tn;
0
Brad

あなたが使用することができます:

BitmapImage obj = new BitmapImage();
obj.UriSource = new Uri(mera_image.BaseUri,file.Path);
0
Baqer Naqvi