1

WPF ユーザー コントロールのライブラリを作成していますが、XAML 経由でアクセスしようとしているリソース イメージに問題があります。面白いことに、画像は設計時に期待どおりに表示され、実行時にのみ失敗します。

ビルド アクションを「none」、「content」、「resource」、「embedded resource」に設定しようとしましたが、次の不可解な例外が引き続き発生します。

「「System.Windows.Baml2006.TypeConverterMarkupExtension」に値を指定すると、例外がスローされました。行番号 '18' および行位置 '6'。

内部例外を見ると、パックURIに問題があるようです。私がしようとすると:

<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,/Resources/an image.png" />

私は得る:

Assembly.GetEntryAssembly() は null を返します。

これはおそらく、私のライブラリが別のアセンブリ内から呼び出されているためです。しかし、推奨事項に従って試してみると:

<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,my_assembly;component;/Resources/an image.png" />

次の内部例外が発生します。

「URIプレフィックスが認識されません。」

さらに面白いことに、実際の C# コード (つまり、XAML 経由ではない) を介して問題なくアクセスできる別の画像リソースがあります。

私は何を間違っていますか?とてもシンプルになりそうな気がしますが、今は頭を悩ませています。

4

1 に答える 1

2

ImageSource を次のように変更します

ImageSource="pack://application:,,,/my_assembly;component/Resources/your_image.p‌​ng"
于 2014-01-17T14:43:23.963 に答える