5

.NET 4.5 用にバージョン 0.11.0.9-ALPHA の MahApps.Metro を使用しています。また、リソース ディクショナリを参照する最適な方法を知りたいと考えています。

App.xaml でそれらをマージされた辞書として参照するべきではないと言われました。そうでない場合、すべてのウィンドウに Window.Resources として追加する必要がありますか?

私はこれをしていました:

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Red.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

</Application.Resources>

これに関する問題は、一部のコントロールがファンキーに動作することです。たとえば、ウィンドウの最小化、最大化、閉じるボタンがテキストのない黒いブロックとして表示されます。これらのリソース ディクショナリを Window.Resources として参照すると、すべて正常に動作します...

4

1 に答える 1

7

すべてのウィンドウで参照される共有リソース ディクショナリを使用するだけです。

GeneralResources.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <other shared resources... />
</ResourceDictionary>

各ウィンドウ:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="GeneralResources.xaml" />
        </ResourceDictionary.MergedDictionaries>

        <other window resources... />
   </ResourceDictionary>
</Window.Resources>
于 2013-04-12T09:17:00.703 に答える