C#学习笔记-WPF资源字典在类库的添加及调用

1、问题

     (1)如何在类库中添加资源字典?

     (2)类库中添加资源字典需要添加什么引用?

     (3)如何调用类库中的资源字典?

2、问题描述&解决方案

   (1)如何在类库中添加资源字典?

      在一个新建的类库项目中,是不能直接添加资源字典文件(.xaml),想要在类库中,右键能够添加资源字典,需要修改项目工程文件(.csproj),在工程文件中添加下面几行代码

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

 

修改完成项目工程文件(.csproj),在类库项目的右键菜单中,可以添加资源字典

(2)类库中添加资源字典需要添加什么引用?

     为了保证资源字典能正常编译通过,还需要添加一些程序集的引用

     PresentationFramework

     PresentationCore

     WindowsBase

    添加以上三个引用之后,程序已经可以编译通过,执行。但是还存在一点小问题,资源字典有波浪线呈现,错误列表中有报错。虽然程序已经能执行,资源字典的小问题,会让人不爽,造成这个问题的主要原因是还缺少了一个程序集的应用。添加了System.Xaml引用后,即可解决这问题

 

 

做完以上操作之后,资源字典文件,就可以在类库中,正常使用和调用

  (3)如何调用类库中的资源字典?

     方式1:在设计器中的编写相应的xaml带代码

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/WPFPages;component/ResouresDic/Dictionary1.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

方式二:在项目中的app.xaml中,添加资源字典调用代码,应用整个项目中。

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/WPFPages;component/ResouresDic/Dictionary1.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

方式3:类中添加代码,并绑定控件

  ResourceDictionary dictionary = new ResourceDictionary();
  dictionary.Source = new Uri("ImageLibrary;component/ResouresDic/Dictionary1.xaml", UriKind.Relative);
  btn.Background = (Brush)dictionary["myImageBrush"];

PS:建议使用前面两种方式

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在C#类库添加WPF窗口,需要使用以下步骤: 1. 在Visual Studio中创建一个新的类库项目。 2. 添加对PresentationFramework和WindowsBase的引用。这可以通过右键单击项目并选择“添加引用”来完成。 3. 在项目中添加一个新的WPF窗口或用户控件。可以右键单击项目并选择“添加”->“新建项”->“WPF窗口”或“WPF用户控件”。 4. 在WPF窗口中添加必要的控件和事件处理程序。 以下是一个简单的示例,展示如何在C#类库添加WPF窗口: ```csharp using System.Windows; namespace MyLibrary { public partial class MyWpfWindow : Window { public MyWpfWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Hello, world!"); } } } ``` 在这个示例中,我们创建了一个名为"MyWpfWindow"的WPF窗口,并在窗口中添加了一个按钮控件。当用户单击按钮时,会弹出一个消息框,显示"Hello, world!"文本。 注意:要在类库中使用WPF窗口,必须在另一个项目(如WPF应用程序或控制台应用程序)中引用该类库并显示该窗口。例如,在WPF应用程序中,可以使用以下代码创建并显示"MyWpfWindow"窗口: ```csharp using MyLibrary; namespace MyWpfApp { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { MyWpfWindow wpfWindow = new MyWpfWindow(); wpfWindow.Show(); } } } ``` 在这个示例中,我们在WPF应用程序中创建了一个名为"MainWindow"的窗口,并添加了一个按钮控件。当用户单击按钮时,会创建并显示"MyWpfWindow"窗口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值