2

WPFResources.dll にあるリソース ディクショナリに単純なスタイルがあり、別のプロジェクトでこのスタイルにアクセスしています。デザイン時にスタイルが適用されていることがわかりますが、アプリケーションを実行すると、例外その"Cannot find resource named 'IndentCheckBoxStyle'. Resource names are case sensitive"。StaticResource を使用すると、この例外が表示されます。DynamicResource を使用すると、例外は表示されませんが、UI には何も表示されません。

この問題の詳細:

プロジェクトで WPFResources.dll を参照し、次のように App.XAML にマージしました。

<Application.Resources>
    <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/WPFResources;component/Theme.xaml" />
        </ResourceDictionary.MergedDictionaries>        
    </ResourceDictionary>
    </Application.Resources>

そして、Theme.xaml 内で、cheboxstyle のリソース ディクショナリをマージしました。

誰でもこれについて何か考えがありますか??

前もって感謝します。

4

1 に答える 1

1

私はこの問題を抱えており、Pack URI 構文を使用してスタイルがアプリケーション全体に適用されていることがわかりました。

例:App.xaml

<Application x:Class="Framework.Presentation.Preview.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/Abt.Framework.Presentation;component/Themes/AbtDark.xaml"/>
            </ResourceDictionary.MergedDictionaries>
         </ResourceDictionary>
    </Application.Resources>
</Application>

ただし、アプリケーションの最上位ウィンドウに暗黙的なスタイルが適用されていません (MyTheme.xaml に名前のないウィンドウのスタイルが含まれているにもかかわらず)。

これを解決するために、ウィンドウに名前付きスタイル (暗黙的なスタイルではない) を使用しました。残りは正しく適用されています。

于 2015-06-03T12:28:47.173 に答える