2017-10-13 137 views
0

我有一個用戶控件庫項目,其中包含一些資源字典,使用Microsoft Visual Studio 2017創建。資源字典包含我想爲其他開發人員提供的XAML樣式在團隊中將其用於不同的WPF-App項目。將用戶控件庫項目複製到WPF-App項目中並不是一個好的解決方案。 我試過如下:在WPF中使用用戶控件庫作爲dll參考

  • UserControleLibraryProjectName/bin/debug/添加.dll文件在WPF應用程序內引用。
  • 通過將該對的App.xaml導入中使用的資源dictionarys到WPF應用內:

    <Application.Resources> 
    <ResourceDictionary> 
        <ResourceDictionary.MergedDictionaries> 
         <ResourceDictionary Source="pack://application:,,,/UserControleLibraryProjectName;component/ResourceDictionaryName.xaml" /> 
        </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    </Application.Resources> 
    
  • 引用照常資源字典條目中MainWindow.xaml:例如Style="{StaticResource style1}"

它編譯沒有錯誤,但在啓動時崩潰,因爲它無法找到引用的資源。 (System.Windows.Markup.XamlParseExceptionSystem.Windows.ResourceDictionary.Source) 我敢肯定,我引用資源字典的源標記的語法是錯誤的,但我嘗試了很多不同的方法... Btw。用戶控制庫項目中沒有錯誤,也沒有參考字典條目的MainWindow.xaml - 當我將資源字典代碼直接複製到app.xaml時,它工作正常。

你知道如何正確使用被引用的dll嗎?

回答

0

到目前爲止,我發現問題: 用戶控件庫項目的.net版本比WPF-App項目的版本要高。由於產生的不兼容性,Visual Studio沒有將.dll複製到WPF-App項目的bin/debug/文件夾中。 另外,我必須將參考用戶控制庫的構建類型設置爲resource

0

你的源看起來正常。它是:

<ResourceDictionary Source="pack://application:,,,/[AssemblyName];component/[PathToFile].xaml" /> 

您還需要參考您的ClassLibrary在您的應用程序,以便爲它工作。

如果這不起作用,首先檢查您的項目屬性,如果您的程序集名稱與您在App.xaml中的名稱相同。