Как загрузить ResourceDictionary из сборки строгих имен? - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть проект, который ссылается на 2 DLL.если упомянутые dll не являются сильными по имени, ресурсы загружаются нормально, и мои пользовательские элементы управления работают.Проблема в том, что мне пришлось строго называть указанные библиотеки DLL, и теперь мои пользовательские элементы управления дают мне XamlParseException System.Windows.Markup.StaticResourceHolder с внутренним элементом «Не удалось загрузить файл или сборку».Я предполагаю, что статический ресурс в app.xaml не может быть найден или загружен, поэтому он думает, что сборка не загружена.Есть ли способ обойти это?

App.Xaml ...

 <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Dark.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Grey.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Red.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

App.xaml.cs ...

 public partial class App
{
    protected override void OnStartup(StartupEventArgs e)
    {
        // referenced to MaterialDesignThemes.Wpf
        MaterialDesignThemes.Wpf.DialogHost d = new MaterialDesignThemes.Wpf.DialogHost();
        var b = d.IsOpen;

        base.OnStartup(e);
        var app = new MainWindow();
        var context = new MainWindowVM();
        app.DataContext = context;
        app.Show();
    }
}

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Вы можете включить ведение журнала Fusion и получить подсказку из этого файла журнала. Как включить ведение журнала ошибок привязки сборки (Fusion) в .NET

0 голосов
/ 25 ноября 2018

pack: // application: ,,, / MaterialDesignThemes.Wpf ; component - Является ли "MaterialDesignThemes.Wpf" именем вашей сборки?или пространство имен?

Можете ли вы попробовать использовать имя вашей сборки (dll) для справки?Проверьте Pack URI для более подробной информации.

...