2011-10-14 8 views
6

私の質問は:私はMSDNが間違っているか、MSDNが間違っていますか?イメージリソースを相対URIで参照しようとしています。Wpfアブソリュートと相対的なPackのURI

WPFでパッケージのURIと題しMSDNページははっきりと述べている:

"地方議会のサブフォルダ内のリソースファイルを" = "/Subfolder/ResourceFile.xaml"

表で2:マークアップにおける相対URI(ここでは http://msdn.microsoft.com/en-gb/library/aa970069.aspx)。

そこで、Vs2010(v10.0.40219.1 SP1Rel)に新しいWPF/.NET 4.0プロジェクトを作成してテストしました。

TestUC.xamlで
Startup Project: TryUri 
    App.xaml 
    MainWindow.xaml 
Custom Ctrl Project: TryUri.CCL 
    Icons/folder.png <-- Marked As Resource! 
    Views/TestUC.xaml 

:MainWindow.xamlで

<Canvas> 
    <Border> 
     <Image Source="/Icons/folder.png" Height="Auto" Width="Auto" /> 
    </Border> 
</Canvas> 

// xmlns:uc="clr-namespace:TryUri.CCL.Views;assembly=TryUri.CCL" 

<uc:TestUC /> 

結果:画像が表示されません!

パスを「../Icons/folder.png」に変更すると、は動作します。

Icons/folder.pngをTryUri.CCL/Views /フォルダにコピーすると、 "Icons/folder.png"が機能します。

しかし、「/Icons/folder.png」のように、MSDNの状態のように、スラッシュを使用することはできません。

+0

私の推測では、作業ディレクトリがプロジェクトで間違って設定されていると思います。私はまずそれをチェックするだろう。 –

+0

pngにファイルとしてアクセスしようとすると作業ディレクトリが問題になります。私はそうではありません、それはリソースとしてマークされています。私はそれを明確にするために質問を更新しました。ありがとう。 –

+0

私は下に自己答えました。私のプロジェクトでは、マークアップに関連するパス(つまり、「../icons/folder.png」)を単純な選択肢として使用することを選択しました。 –

答えて

関連する問題