zoukankan      html  css  js  c++  java
  • WPF ResourceDictionary XAML资源 c#代码 获取与遍历

    使用C#代码来获取XAML资源,除去正常的FindResource。而且是能查询到资源的对象。

    说实话还是很麻烦的。

    比如说我现在有一堆静态资源放在xaml的资源中,我想通过绑定的方式来获取。

    好比是Path的Data数据 ,我放在Xaml资源中。

    我将path作为listbox的ItemTemplate的内容填充,然后将xaml资源中对应的Path的Data的名称作为集合绑定到Listbox。

    必然我是需要编写一个转换器的。

    这个过程,最重要的是转换器中如何获取静态资源。

    代码如下:

     public class ToPathData : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                var b = XamlReader.Load(new FileStream(@"C:Userswppcnsource
    epos网易云网易云ResoureceSvgImgResource.xaml",FileMode.Open)) as ResourceDictionary;
                var data = b[value] as Geometry;
                return data;
                 
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return null;
            }
        }

    通过XamlReader.Load方法加载本地对应的xaml资源后强制转换成ResourceDictionary。

    最后获取资源。

    如果是想遍历其中的数据则是:

    forearch(var item in b)//内容是object 也就是value
    {
    //通过手段判断是否你想要的
    
    
    }

    如果想通过名称遍历则是

    forearch(var item in b.Keys)//内容是object 也就是value
    {
       var value=b[item];//通过名字直接获取value
    
    
    }

    总体而言还是很麻烦的

    所以最简单的方式还是将xaml资源放入到App.xaml中Application.Resources

    这个样子就可以通过

    App.Current.FindResource("资源Key")

    来获取了

  • 相关阅读:
    Java虚拟机:二、Java内存区域
    Filter模块插件的详细介绍
    Input模块插件的详细介绍
    Logstash的简单介绍
    Logstash的下载安装
    安装Ruby和logstash插件
    Kibana安装与web界面
    ElasticSearch的下载安装
    Flink项目点 pom文件
    IDEA的配置
  • 原文地址:https://www.cnblogs.com/T-ARF/p/10934176.html
Copyright © 2011-2022 走看看