2012-05-24 74 views
0

我收到錯誤消息只是在我的XAML標記部分的開始,因爲XAML中的錯誤信息

上「System.Windows.StaticResourceExtension」拋出一個異常提供價值。」行號「8」和行位置「9」。

<Window x:Class="prj.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:s="clr-namespace:prj" 
    xmlns:c="clr-namespace:prj.Controls" 
    WindowStartupLocation="CenterOwner" 
    Title="MainWindow" 
    Height="850" Width="1000"> 

任何幫助表示讚賞。

問候, 阿米特

+2

如果您在xaml中使用任何靜態資源,然後確保它可用,您是否可以發佈堆棧跟蹤或innerexception – Tilak

+0

? – JSJ

回答

0

這個錯誤可能是由以下原因造成: 對於靜態資源,你應該參考之前定義它(動態資源沒有此限制)。 有關詳細信息,請參閱: http://social.msdn.microsoft.com/Forums/en/wpf/thread/f76fdf5d-a9cd-4f42-b2a0-ad560744a39f

也許這是沒有用的,但檢查你的代碼先仔細。

+0

我在提交問題之前看到了論壇,但沒有幫助。正如你在Xaml的開頭看到的,我沒有使用任何需要參考的東西......我甚至刪除了這兩個clr命名空間行,但我收到了錯誤消息。謝謝。 –

0

行號和列號在這裏不相關。在這種例外情況下,他們可能是沒有意義的。

挖掘內部異常並尋找它找不到的密鑰。然後在整個解決方案中搜索該密鑰以查看其使用位置。對於每種用法,請確保資源可用。

通常,這種情況發生在有一個用戶控件(UC1)具有在UC1主體中使用的資源時。然後,另一位開發人員將UC1的一部分複製到UC2而不復制資源。當在窗口中使用UC2時,顯示這種類型的神祕消息。

+0

對我正在編寫一個預先編寫的代碼,並且錯過了它。謝謝你的幫助。 –

+0

很高興它幫助。請將其中一個答覆標記爲幫助其他人在未來搜索時回答的答案。 – XAMeLi

0

行號和位置可能是從後面的代碼引用InitializeComponent()方法。我會去大多數建議。在使用它之前,確保你的靜態資源可用。

您是否在該XAML文件的任何位置使用靜態引用?如果是這樣,找到它定義的字典,並確保它在XAML文件之前加載。最簡單的方法是將資源字典添加到您的應用程序merged dictionaries。您可以刷新您對靜態資源here的瞭解。

+0

是的,其實問題是在應用程序字典中。謝謝 –

0

我有同樣的事情,但我有問題,是因爲我定義了一個DataTemplate在用戶控件的參考資料部分ListBox但是,是相當新的WPF,我包括一個DataType=」ListBoxItem」

那麼,這是因爲DataType是不必要的問題。採取這一措施解決了我的問題。