いつか検索しますが、同じソリューション内の別のプロジェクトからイメージをロードできない理由がわかりません。別のアセンブリにUriを使用してイメージをロードする
namespace LogosModule
{
public static class TestClass
{
public static readonly Uri Hess = new Uri("pack://application:,,,/LogosModule;component/Resources1/Logos/Hess.jpg", UriKind.RelativeOrAbsolute);
}
}
ファイルのビルドアクションを「コンテンツ」に設定されている:以下に示すように
は、私は別のプロジェクト(アセンブリ)に入れ、ロゴイメージを持っています。私はまた、 "組み込みリソース"を使用して、ルートディレクトリにコピーを有効にしようとしました。
Uriはコンストラクタで割り当てられます。私はUriを無駄にハードコードしようとしました。私の主なシェルモジュールにおいて
、私はこの画像は(ここでCatelを使用して)表示有するために使用されるAboutView制御有する:
[ViewModelToModel(nameof(AboutInfo))]
public Uri AssociatedCompanyLogoUri
{
get { return GetValue<Uri>(AssociatedCompanyLogoUriProperty); }
set { SetValue(AssociatedCompanyLogoUriProperty, value); }
}
public static readonly PropertyData AssociatedCompanyLogoUriProperty = RegisterProperty(nameof(AssociatedCompanyLogoUri),typeof(Uri));
を私は別の画像を持っているが、これは主シェルアセンブリに含まれています同じ方法で問題なく表示されます。
XAMLコードを以下に示します。
<StackPanel Grid.Row="0" Grid.Column="0" Margin="10,5,0,10" Orientation="Horizontal">
<TextBlock Text="Account" FontSize="32" Margin="10,5,0,10"></TextBlock>
<Image Source="{Binding AssociatedCompanyLogoUri}" HorizontalAlignment="Right"
Margin="10" VerticalAlignment="Center" Stretch="None" />
</StackPanel>
私が手に例外を以下に示します。
Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "LogosModule.g.resources" was correctly embedded or linked into assembly "LogosModule" at compile time, or that all the satellite assemblies required are loadable and fully signed.
at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)
はデバッグ中、私はウリが割り当てられていることをはっきりと見ることができます。問題は、アセンブリが何らかの形で正しくロードされていないことが原因です。
お願いします。
それを気に入ってください。あなたの提案から、私がしなかったのは "リソース"への設定でした。私は "埋め込み"と "リソース"の違いについて十分に知っていると思った。明らかに私はしません。ご協力ありがとうございました。 –