設置C#類庫項目中可以添加WPF元素


1. 引言

    最近在搭建一個WPF的插件框架,需要將WPF界面封裝到各個插件類庫中。而默認情況下建立的C#類庫,是不能添加WPF元素的,這就需要我們手動對項目設置進行一些調整。下面就說說具體的設置過程。

2. 創建WpfLib項目

    我們創建一個名稱為WpfLib的類庫項目,這時鼠標右鍵項目名稱》添加,彈出的菜單如下圖:

 

可以發現,菜單項中並沒有關於WPF元素的菜單項(如窗口、頁、用戶控件、資源字典)。

 

3. 修改WpfLib.csproj

 用記事本打開WpfLib.csproj文件,情形如下:

 

在其第一個PropertyGroup節點的最后添加一行:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

    此時,WpfLib.csproj的第一個PropertyGroup節點變為:

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>e04974de-aa8c-429e-bb72-ac23afca7f9c</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>WpfLib</RootNamespace>
    <AssemblyName>WpfLib</AssemblyName>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  </PropertyGroup>

    其中,黃色的那行就是我們上一步添加上去的。此時我們再右鍵項目名稱》添加,彈出的菜單項就發生了變化了:

    這說明我們此時就可以添加WPF元素了。我們在項目中添加個Window1,可以成功添加。別急,看看Window1.xaml,

    看來我們的工作還沒有做完……

4. 添加相關引用

     在主程序中添加如下引用:

              PresentationCor(4.0.0.0)

    PresentationFramework(4.0.0.0)

    System.Xaml(4.0.0.0)

    WindowBase(4.0.0.0)

     此時再看添加的Window1.xaml,發現已經正常了。但莫急,請繼續往后看……

5. 修改Assembly.cs

再Assembly.cs中添加一行代碼:

[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

這行代碼的作用是,當WPF尋找控件時,給其指明主題字典(控件樣式)在類庫中的存儲位置。

 

Over!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM