31

ウィンドウに画像が必要なプロジェクトがあります。これは静的な画像で、'Add>Existing Item' で追加しました。プロジェクトのルートに存在します。

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

<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>

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

どんな助けでも素晴らしいでしょう。

4

10 に答える 10

33

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

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

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

pack://application:,,,/MyAssembly;component/bug.png
于 2009-03-12T16:03:35.273 に答える
21

→ 画像ファイルを右クリック → プロパティをクリック → Build Action to Resource を選択 → Clean and Build solution → Run the Solution

あなたはすべてを手に入れるでしょう。

于 2011-07-07T07:06:02.960 に答える
16

同じ問題がありました。ソリューションをクリーニングして再構築しても修正されなかったため、ビジュアルスタジオを再起動しました。Visual 2010 で、この問題と、Visual 2008 で wpf を悩ませている他の多くの問題が修正されることを願っています。

于 2009-09-30T10:21:36.300 に答える
13

イメージへのパスを「/」で開始してみてください。

<Image Source="/bug.png"/>
于 2012-03-02T16:41:13.990 に答える
4

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

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

「コンポーネント」はフォルダではありません!

于 2012-05-13T11:16:29.090 に答える
2

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

于 2009-10-11T19:40:59.373 に答える
1

別のオプションである非同期ロードの例。サンプル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();
}
于 2010-03-19T16:42:40.240 に答える
0

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

対応する行を削除するだけです:

<ResourceDictionary Source="someStyle.xaml"/> 

トリックをしました。

于 2010-12-26T15:29:58.697 に答える
0

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

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

<Window Icon="icons1.ico">

私が使うべきだったとき;

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

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

于 2013-02-06T09:11:46.517 に答える