3

私はXAMLの以下のブロックを持っています

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

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="ShinyBlue.xaml"/>
        <ResourceDictionary Source="DataGrid.Generic.xaml"/>
    </ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

この作業を参照するフォームは、設計時に機能しますが、実行時には機能しません。フォームが ShinyBlue.xaml または DataGrid.Generic.xaml を直接参照している場合、そのスタイル シートは機能します。

編集

これをフォームに直接貼り付けると、正しく機能します。どうやら問題は私のラッパーに関係しているようです。

壊れた

<Window.Resources>
    <ResourceDictionary Source="../BaseStyles.xaml"/>
</Window.Resources>

作品

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="ShinyBlue.xaml"/>
    <ResourceDictionary Source="DataGrid.Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
4

1 に答える 1

2

名前空間からファイル名までのパス全体を含めてみてください。

<ResourceDictionary Source="pack://application:,,,/[YourDll];component/[YourLocation]/ShinyBlue.xaml"/>

[YourDll] はプロジェクトの名前で、[YourLocation] は ResourceDictionary が存在する DLL 内の場所です。

于 2010-04-28T07:57:43.233 に答える