zoukankan      html  css  js  c++  java
  • WPF 的另类资源方式 Resources.resx

     

     

    类似Winform的搞法,可以把资源放到Resources.resx中。

    1.字符串

    打开这个编辑器后,输入Name和Value就可以了。

    CS代码里面,很简单的调用:

    var title = WpfResource2.Properties.Resources.IDS_TEST_TITLE;

    如果要用在XAML中,需要把Access Modifier改为public,原来是Internal。

    XAML如下:

    复制代码
    1 <Window x:Class="WpfResource2.MainWindow"
    2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4         xmlns:res="clr-namespace:WpfResource2.Properties"
    5         Title="MainWindow" Height="350" Width="525">
    6   <Grid>
    7     <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Text="{x:Static res:Resources.IDS_TEST_TITLE}">
    8 
    9     </TextBlock>
    复制代码

    2. 图片资源

    放入现有的文件

    这个不能在XAML里面直接用了,cs代码里面:

    复制代码
       var testImg = WpfResource2.Properties.Resources.IC371904;
                MemoryStream memory = new MemoryStream();
                testImg.Save(memory, System.Drawing.Imaging.ImageFormat.Png);
                ImageSourceConverter converter = new ImageSourceConverter();
                ImageSource source = (ImageSource)converter.ConvertFrom(memory);
                img.Source = source;
    复制代码

    3. 文件,我尝试加入了一个文本,好像默认的文件格式也是文本,居然读出来string了

    var content = WpfResource2.Properties.Resources.test;

    加入了一个其他格式的文件,读取到的是byte[]

    var content = WpfResource2.Properties.Resources.New_Microsoft_Excel_Worksheet;

    4. 还有其他类型,就不在一一实验了。

    不知道MUI,能否通过这种方式来搞。

     Demo

  • 相关阅读:
    OpenStack云桌面系列【2】—OpenStack和Spice
    Java中的读写锁 ReentrantReadWriteLock
    Spring Boot Actuator 监控实践
    java子线程中获取父线程的threadLocal中的值
    String源码解析
    Java基础一
    Java 8 Lambda表达式实现原理解析
    Rabbit MQ总结
    AtomicInteger及CAS源码解析
    Queue(队列)接口和其实现类PriorityQueue(优先级队列)源码解析
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5482617.html
Copyright © 2011-2022 走看看