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>

المشكلة أحصل على رسالة تقول أنه لا يمكن العثور عليه أو أنه بناء العمل ليس من الموارد ولكنه موجود وهو بناء العمل هو المورد.إن إنشاء تطبيق جديد و دعيها على النافذة ثم فإنه يعمل بشكل جيد.

أي مساعدة من شأنها أن تكون كبيرة.

هل كانت مفيدة؟

المحلول

وحاول القيام كاملة إعادة بناء، أو حذف ملفات البناء وثم إنشاء الملف.

والبصرية ستوديو لا اختيار دائما تغييرات على الموارد، ويمكن أن يكون الألم للحصول عليه إعادة ترجمة.

وحاول أيضا باستخدام URI كامل كما ساعدتني عندما أتيحت لي نفس المشكلة. شيء من هذا القبيل

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

نصائح أخرى

و→ الحق فوق ملف الصورة → انقر الملكية → اختر إنشاء إجراء إلى الموارد → حل النظيفة وبناء → تشغيل الحل

وسوف تحصل على كل شيء.

وكان لي نفس المشكلة. تنظيف وإعادة بناء الحل لم إصلاحه لذا فإنني إعادة تشغيل استوديو البصرية وفعلت. هنا تأمل البصرية 2010 حل هذه القضية والعديد من الآخرين أن plauge برنامج الأغذية العالمي في Visual 2008.

وحاول بدء تشغيل الطريق إلى صورتك مع "/":

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

وهناك حل لسؤالك

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

و"عنصر" ليس مجلد!

ولم يحدث ذلك، أو على الأقل بيتا الحالية لا. لقد وجدت هذه الصفحة في حين يبحث في بالضبط نفس المشكلة. إعادة بناء / نظيفة لم يفعل شيئا. بعد إغلاق وإعادة الحل ملف أصبحت سحرية متوافقة مرة أخرى.

ومثال على تحميل المتزامن، هناك خيار آخر. مثال clip.mp4 في جذر مشروع على شبكة الإنترنت.

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 esources\
  • من داخل Visual Studio انقر بزر الماوس الأيمن على الموارد وحدد "إضافة > القائمة البند" ثم حدد الصورة التي قمت للتو بنسخها في
  • من خلال شكل XAML تحديد مصدر الصورة كما يلي: "Source="Resources/MyImage.ico" (بلدي صورة تم حفظها في أيقونة (.ico) ، ولكن هذا النهج يجب أن تعمل على أي نوع الصورة

آمل أن يساعد هذا شخص

وكان لي مشكلة مماثلة. بعد أن حذف ملف someStyle.xaml أن كنت لا تستخدم حقا من حل اكسبلورر. ثم أنا استعادة الملف، ولكن حدث أي تغيير. تنظيف وإعادة بناء المشروع لم يساعد.

وببساطة حذف الصف المقابل:

<ResourceDictionary Source="someStyle.xaml"/> 

وفعلت الحيلة.

وكان لي نفس رسالة الخطأ ولكن القضايا بلدي خطأ NOOB بسيط.

عند لقد أضفت ملفات منظمة البن الدولية جهدي ل"بلدي مشروع / الموارد"، أدلى VS مجلد فرعي اسمه الموارد وكنت أحاول أن استخدام؛

<Window Icon="icons1.ico">

وعندما كان ينبغي أن يكون استخدام؛

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

... لا تحكم، بدأت باستخدام WPF 1 أسبوع مضت:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top