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 回答