Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Codebehind读取样式XAML_C#_Wpf_Xaml - Fatal编程技术网

C# 从Codebehind读取样式XAML

C# 从Codebehind读取样式XAML,c#,wpf,xaml,C#,Wpf,Xaml,例如,我有一个资源文件名theme.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Color x:Key="TitleColor1">#e0e0e0</Color> <Color x:Key=

例如,我有一个资源文件名theme.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Color x:Key="TitleColor1">#e0e0e0</Color>
  <Color x:Key="TitleColor2">#616161</Color>
  <Color x:Key="TitleColor3">#404040</Color>
  <Color x:Key="TitleColor4">#bfbfbf</Color>
  <Color x:Key="TitleColor5">#7d0000</Color>
</ResourceDictionary>
做这件事的最佳方法是什么?

你可以这样做

Color c = (Color)FindResource("TitleColor1");
然后,您可以将c转换为字符串或任何您想要的内容


有关FindResource的更多信息,请访问

我不知道当您可以像这样将ResourceFile加载到ResourceDictionary对象中时,为什么需要自定义类

        FileStream fs = new FileStream("Dictionary1.xaml", FileMode.Open);
        ResourceDictionary dictionary = (ResourceDictionary)XamlReader.Load(fs);

拥有dictionary对象后,您可以以任何方式使用键和值。

您可以通过加载资源字典来访问资源字典元素。之后,您可以使用资源字典中的键访问元素

 var s = System.Windows.Application.LoadComponent(new Uri("URI for ResourceDictionary", UriKind.Relative)) as ResourceDictionary;
        var color = s["TitleColor1"] as Color;

我不知道给定的任何带有颜色集的xaml文件的键的名称我想将其读入对象抱歉,我以为您想读入TitleColor1并将值放入“Key”字符串对象中。你想做什么?你能详细说明一下我想要解析Xaml文件的内容并创建一个模型列表吗?你是用什么方法实现的?也许这已经是最好的了。您确实尝试过一些东西,对吗?我想用正则表达式来解析文本并将它们插入到对象中,但我希望有更好的方法来实现这一点。XamlReader不包含加载定义,我想是的。使用System.Windows.Markup.XamlReader
 var s = System.Windows.Application.LoadComponent(new Uri("URI for ResourceDictionary", UriKind.Relative)) as ResourceDictionary;
        var color = s["TitleColor1"] as Color;