2

次の 2 つの辞書に問題があります。

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Styles1.xaml"/>
    <ResourceDictionary Source="Styles2.xaml"/>
</ResourceDictionary.MergedDictionaries>

たとえば、色など、最初のディクショナリに 1 つのリソースを設定するとします。次に、2番目の辞書でそれを見つけることができませんか????

初め:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Color x:Key="ApplicationPageBackgroundColor">#FFFFFFFF</Color>
    <SolidColorBrush x:Key="ApplicationPageBackgroundColorBrush" Color="{StaticResource ApplicationPageBackgroundColor}" />
</ResourceDictionary>

2番目: ( Setter Property="Background" Value .... エラーが発生します)

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style x:Key="LayoutRootStyle" TargetType="Panel">
        <Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundColorBrush}" />
    </Style>
</ResourceDictionary>

それらを同じ辞書に入れるとうまくいきますが、何か提案はありますか?

4

1 に答える 1

0

Styles2.xamlへの参照はありませんStyles1.xaml。StaticResource が機能するためには、ディクショナリ エントリが使用時に (「スコープ内」で) 静的に表示されている必要があります。同様に、同じ XAML ファイルで後で定義されたリソースを参照することはできません。

WPF では、DynamicResource が必要なことを実行する可能性がありますが、WinRT では使用できません。1 番目のリソースを 2 番目のリソースにマージする (循環依存関係を持たない) か、共有部分を両方から見える場所に配置する必要があります (例: Application.Resources)。

于 2013-01-05T22:02:22.787 に答える