zoukankan      html  css  js  c++  java
  • 设置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!

  • 相关阅读:
    winform窗口打开特效及窗口位置居中
    C# Installer Projects 打包工具
    C#
    MVVM模式开发WinForm-ReactiveUI
    C#实现类似百度网盘、育网校园云盘在“我的电脑”磁盘驱动器
    MVVM框架
    自制2048小游戏
    一个无限循环轮播图 HCCycleView
    Xcode插件及cocoapods不能正常使用的解决方法
    Runtime — 运行时机制
  • 原文地址:https://www.cnblogs.com/stonemqy/p/11363502.html
Copyright © 2011-2022 走看看