2011-02-17 33 views
0

我正在創建一個項目,我正在創建一堆用戶控件。在稍後我決定將這些控件移到UserControl庫中。這就是我所做的:將WPF應用程序項目轉換爲UserControl庫導致InitializeComponent()無法找到錯誤

  1. 創建一個新的VS2010項目(用戶控制庫)。
  2. 將.NET版本3.5
  3. 創建了一堆從以前的項目文件夾
  4. 添加文件到我的圖書館

然而,當我嘗試建立我的圖書館,我得到以下錯誤:

Error 14 'EChart.Controls.EPreviewGraphSelector' does not contain a 
definition for 'InitializeComponent' and no extension method 'InitializeComponent' 
accepting a first argument of type 'EChart.Controls.EPreviewGraphSelector' 
could be found (are you missing a using directive or an assembly reference?)  
C:\Projects\eControls\EChart\EChart\Controls\EPreviewGraphSelector.xaml.cs 73 18 EChart 

我的XAML文件和後面的代碼的命名空間匹配。整個項目,當它是一個應用程序而不是一個圖書館,正在建設。

下面是簡化的代碼我的用戶:

<UserControl x:Class="EChart.Controls.EPreviewGraphSelector"> 

後面的代碼:

namespace EChart.Controls 
    { 
     public partial class EPreviewGraphSelector : UserControl 
     { 
      public EPreviewGraphSelector() 
      { 
       InitializeComponent(); 
      } 
     } 
    } 
  • g.cs文件沒有得到該用戶控件生成!
  • Build Action設置爲頁面。
  • 我擁有所有必要的引用添加
  • 用戶控制的構建工具設置爲的MSBuild:編譯

編輯:

我發現它無法編譯可能的地方:

如果我註釋掉構造函數以外的所有代碼,我的用戶控件的g.cs文件會被生成,但它帶有一個錯誤:

錯誤2名稱空間「Microsoft」中不存在類型或命名空間名稱「Windows」(是否缺少程序集引用?)C:\ Projects \ eControls \ EChart \ EChart \ obj \ Debug \ Controls \ EPreviewGraphSelector.g 15的.cs 17 EChart

這個來自g.cs

using Microsoft.Windows.Themes; 

任何這是爲什麼發生的思想的這一部分?

回答

1

其實我已經賣掉了這個問題,我不確定它爲什麼會發生,但是我知道很難修復它。

在我的用戶我有以下參考:

xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna" 

這可能是因爲混合添加,當我被一些樣式的標準控件。當我處於設計模式時,我沒有收到任何錯誤消息。所以當我編譯我的userControl時,我得到了生成我的InitializeComponent方法的g.cs文件。然後我得到了Microsoft.Windows.Themes;的引用,因爲我在xaml中引用了該引用(參見上文)。當它編譯g.cs文件時,它會失敗,所以g.cs文件不會生成,並且不存在InitializeComponent方法,這會導致該錯誤。

0

我想你還沒有正確設置項目。我建議查看WPF應用程序的設置,例如引用,並將它們複製到您的庫中。用戶控件的構建工具是否設置爲MSBuild:編譯?

+0

我已添加所有必需的參考。並將構建工具設置爲MSBuild:編譯 – Vitalij 2011-02-17 11:11:17

0

您是否檢查了添加到新項目中的現有文件的名稱空間?我可以想象有不一致或者不適合的不同名稱空間,或者xaml中的名稱空間與類定義中的名稱空間不匹配。

+0

它們匹配,它在前一個項目中編譯,從那時起我沒有更改命名空間,並且我多次檢查它。這是相同的。 – Vitalij 2011-02-17 12:06:22

相關問題