簡體   English   中英

從Codebehind讀取樣式XAML

[英]Reading Style XAML from Codebehind

例如,我的資源文件名為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>

我想閱讀這些元素並將其設置在Custom對象中。

public class ThemeModel
{
    public string Key { get; set; }

    public string ColorString { get; set; }
}

最好的方法是什么?

你可以做

Color c = (Color)FindResource("TitleColor1");

那么您可以將c強制轉換/轉換為字符串或任何您想要的東西。

有關MSDN上的 FindResource的更多信息

我不知道為什么當您可以將ResourceFile加載到ResourceDictionary對象中時為什么要使用自定義類

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

擁有字典對象后,您可以使用任意鍵和值。

您可以通過加載資源字典來訪問資源字典元素。之后,可以使用資源字典中的鍵來訪問元素。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM