3

スタイリングにリソース ディクショナリを使用するアプリに取り組んでいます。構成設定で使用中の辞書を変更できるように変更する必要があります。

Original.xamlNeon.xaml&の 3 つの辞書がありGraphite.xamlます。

App.xaml:

 <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Resources/Original.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

次のように呼び出して、使用されている辞書を変更できます。

private void DynamicLoadStyles(string StyleToUse)
{
    string fileName = "C:\\Data\\Projects\\MyApp\\MyApp\\Resources\\" +
        StyleToUse + ".xaml";
    using (FileStream fs = new FileStream(fileName, FileMode.Open))
    {
        ResourceDictionary dic = (ResourceDictionary)XamlReader.Load(fs);
        Resources.MergedDictionaries.Clear();
        Resources.MergedDictionaries.Add(dic);
    }
 }

すべてが期待どおりに機能します(ただし、これが正しい方法であるかどうかはわかりません)。問題は、ファイルを埋め込み、外部ファイルからロードする必要がないことです。

役立つ情報を検索しましたが、探している情報が見つかりません。つまり、私はWPFを初めて使用し(3週間)、まだ何をしているのかよくわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

4

そもそも質問すべきではなかったので、自分の質問に答えるのは好きではありません。しかし、私は...を使用して問題を解決しました。

    private void LoadDynamicResource(String StyleToUse)
    {

        ResourceDictionary dic = new ResourceDictionary { Source = new Uri(StyleToUse, UriKind.Relative) };
        Resources.MergedDictionaries.Clear();
        Resources.MergedDictionaries.Add(dic);

    }

しかし、私はこれについての意見に興味があります。

于 2012-09-12T11:49:56.640 に答える