从代码背后阅读风格XAML
本文关键字:风格 XAML 代码 背后 | 更新日期: 2023-09-27 18:07:04
例如,我的资源文件名为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>
我想读取这些元素并将其设置在自定义对象中。
public class ThemeModel
{
public string Key { get; set; }
public string ColorString { get; set; }
}
最好的方法是什么?
我不知道为什么你想要你的自定义类,当你可以加载ResourceFile到ResourceDictionary对象,如
FileStream fs = new FileStream("Dictionary1.xaml", FileMode.Open);
ResourceDictionary dictionary = (ResourceDictionary)XamlReader.Load(fs);
一旦你有了字典对象,你就可以以任何你想要的方式使用键和值
你可以做
Color c = (Color)FindResource("TitleColor1");
,那么你可以将c强制转换为字符串或任何你想要的。
关于MSDN上FindResource的更多信息
您可以通过加载资源字典来访问资源字典元素。之后,您可以使用资源字典中的键访问元素。
var s = System.Windows.Application.LoadComponent(new Uri("URI for ResourceDictionary", UriKind.Relative)) as ResourceDictionary;
var color = s["TitleColor1"] as Color;