2012-10-19 37 views
2

我希望有一組包含可以從多個不同的WOF類的引用來定義常見的樣式獨立的DLL中的風格設置的資源。在單獨的DLL WPF

我創建了獨立的DLL,並試圖引用它,但我有問題。

下面是獨立的DLL的代碼:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

     <Style x:Key="myStyle" TargetType="Button"> 
      <Setter Property="Background" Value="Orange" /> 
      <Setter Property="FontStyle" Value="Italic" /> 
      <Setter Property="Padding" Value="8,4" /> 
      <Setter Property="Margin" Value="4" /> 
     </Style> 

    <!-- store here your styles --> 
</ResourceDictionary> 

這裏就是我試着去引用它:

<src:GX3ClientPlugin.Resources> 
    <ResourceDictionary Source="pack://application:,,,/GX3StyleResources.dll;component/GX3StyleResources.xaml" /> 
</src:GX3ClientPlugin.Resources> 

當運行我得到以下異常:

無法加載文件或程序集「GX3StyleResources.dll,Culture = neutral」或其某個依賴項。系統找不到 指定的文件。

任何想法?

+0

根據我的經驗,如果您在不同的項目中保留資源,圖像等,很難管理。如果不是,我也認爲它沒有什麼好處。 – Ekk

回答

4

我做同樣的在我的一些項目,我做的是對DLL添加爲引用到我的項目,然後我用包URI,但我不指定擴展.dll文件。我只是使用程序集名稱(通常沒有.dll)

Source="pack://application:,,,/GX3StyleResources;component/GX3StyleResources.xaml" 
+0

問題是我的程序集名稱末尾有.dll。 – user589195

0

我以前也有這個問題。如果你從來沒有在裝配在實際的C#代碼實際引用任何東西,有時(的標準,我不能爲我的生活決定)編譯/運行/兩者的某種組合只是不加載或複製裝配。

類添加到該做一些事情/任何您的資源彙編文件 - 不留空白,否則會在某些情況下得到優化:

public static class Resources 
{ 
    public static void Init() 
    { 
     Console.Write(string.Empty); 
    } 
} 

然後,從您的應用程序,調用資源.Init()在您的應用程序啓動方法之前,確保資源程序集已被加載。

這是一個骯髒的黑客,但它的作品。