WPF-イメージは「プロジェクトの一部ではないか、ビルドアクションがリソースに設定されていません」

StackOverflow https://stackoverflow.com/questions/638845

質問

ウィンドウ内に画像を必要とするプロジェクトがあります。これは静的な画像であり、「既存のアイテムを追加」で追加しました。プロジェクトのルートに存在します。

次のようにテストページで画像を参照します-

<Page x:Class="Critter.Pages.Test"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Test">
      <Image Source="bug.png"/>
</Page>

問題は、見つからない、またはビルドアクションがリソースではないが、存在し、ビルドアクションがリソースであるというメッセージが表示されることです。新しいアプリケーションを作成し、それをウィンドウに投げるだけで正常に動作します。

どんな助けでもいいです。

役に立ちましたか?

解決

フルリビルドを実行するか、ビルドファイルを削除してからファイルをビルドします。

Visual Studioは常にリソースへの変更を取得するとは限らず、再コンパイルするのが面倒な場合があります。

完全なURIを使用してみてください。同じ問題が発生したときに役立ちました。次のようなもの

pack://application:,,,/MyAssembly;component/bug.png

他のヒント

→画像ファイルを右クリック →プロパティをクリック →リソースへのビルドアクションの選択 →クリーンアンドビルドソリューション →ソリューションの実行

すべてを取得します。

同じ問題がありました。ソリューションのクリーニングと再構築では修正されなかったため、Visual Studioを再起動しました。 Visual 2010がこの問題を解決し、Visual 2008でwpfを脅かす他の多くの問題を修正することを期待しています。

&quot; /&quot;を使用して画像へのパスを開始してみてください:

<Image Source="/bug.png"/>

質問に対する解決策があります

<Image Source="/WpfApplication4;component/images/sky.jpg" />

&quot;コンポーネント&quot;フォルダではありません!

そうではないか、少なくとも現在のベータはそうではありません。私はまったく同じ問題を調べているときにこのページを見つけました。再構築/クリーニングは何もしませんでした。ソリューションを閉じてリロードした後、ファイルは魔法のように再び互換性を持つようになりました。

非同期ロードの例、別のオプション。例のclip.mp4は、Webプロジェクトのルートにあります。

void Landing_Loaded(object sender, RoutedEventArgs e)
{
    //Load video async

    Uri pageUri = HtmlPage.Document.DocumentUri;
    Uri videoUri = new UriBuilder(pageUri.Scheme, pageUri.Host, pageUri.Port, "clip.mp4").Uri;           

    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
    webClient.OpenReadAsync(videoUri);
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    byte[] VideoBuffer = new byte[e.Result.Length];
    e.Result.Read(VideoBuffer, 0, (int)e.Result.Length);
    MemoryStream videoStream = new MemoryStream(VideoBuffer);
    ContentVideo.SetSource(videoStream);
    ContentVideo.Stop();
    ContentVideo.Play();
}

まったく同じ問題に直面しましたが、VS2008の再起動またはプロジェクトのクリーニングと再構築は機能しませんでした。最後に、以下の手順でうまくいきました。

  • Windowsエクスプローラーで、イメージをプロジェクトリソースフォルダーにコピーします。例:MyProject \ Resources \
  • Visual Studio内で[リソース]を右クリックし、[追加]&gt;を選択します。既存のアイテム&quot;コピーした画像を選択します
  • フォームXAMLから画像ソースを次のように設定します:&quot; Source =&quot; Resources / MyImage.ico&quot; (私の画像はアイコン(.ico)ファイルとして保存されましたが、このアプローチはあらゆる画像タイプに対応

これが誰かに役立つことを願って

同様の問題がありました。ソリューションエクスプローラーから実際には使用していなかった someStyle.xaml ファイルを削除した後。 その後、ファイルを復元しましたが、変更はありませんでした。プロジェクトのクリーニングと再構築は役に立ちませんでした。

対応する行を単に削除する:

<ResourceDictionary Source="someStyle.xaml"/> 

トリックをしました。

同じエラーメッセージが表示されましたが、問題は単純なNOOBミスでした。

.icoファイルを&quot; My Project / Resources&quot;に追加すると、VSはResourcesという名前のサブフォルダーを作成し、使用しようとしました;

<Window Icon="icons1.ico">

使用すべきだったとき;

<Window Icon="Resources/icons1.ico">

...判断しないで、1週間前にWPFを使い始めました:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top