MetroApps не находит ResourceDictionary 2.0.0-alpha0748 - PullRequest
0 голосов
/ 07 апреля 2020

Я смотрю на использование MetroApps 2.0.0-alpha0748 от Nuget. Я включил это в свой проект и начал реализацию.

Я использую это внутри существующего приложения, и это окно будет вызываться из надстройки внутри этого приложения. Так что я не владею контекстом приложения. Поэтому я не использовал типичные общие ресурсы Application.xaml, я надеялся рассмотреть это здесь.

Все строится правильно. Всякий раз, когда я запускаю, я получаю сообщение об ошибке ниже.

<Controls:MetroWindow x:Class="FamilyBrowser.Browser.ApplicationView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
        xmlns:helper="clr-namespace:RevitFamilyBrowser.BrowserHelper"
        xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
        xmlns:local="clr-namespace:FamilyBrowser.Browser"
        xmlns:vm="clr-namespace:FamilyBrowser.BrowserViewModel"
        xmlns:view ="clr-namespace:FamilyBrowser.BrowserView"
        xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
        Title="Family Browser" Height="800" Width="800"
        MinHeight="300" MinWidth="400" Closing="Window_Closing"
    >
    <Window.DataContext>
        <vm:ViewModelMain/>
    </Window.DataContext>
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/dark.red.xaml" />
            </ResourceDictionary.MergedDictionaries>
         </ResourceDictionary>
    </Window.Resources>
</Controls:MetroWindow>

Ошибка MahApps

Я скачал примеры кода из MahApps.Metro и смог собрать и запустить пример HamburgerMenuNavigation без каких-либо проблем. Я также смог изменить пример стилей / тем с dark.red на light.red на light.orange.xaml et c. без каких-либо проблем, чтобы подтвердить, что это не машина, указанная c проблема.

Обновление:

<Controls:MetroWindow x:Class="FamilyBrowser.Browser.ApplicationView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
        xmlns:helper="clr-namespace:FamilyBrowser.BrowserHelper"
        xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
        xmlns:local="clr-namespace:FamilyBrowser.Browser"
        xmlns:vm="clr-namespace:FamilyBrowser.BrowserViewModel"
        xmlns:view ="clr-namespace:FamilyBrowser.BrowserView"
        xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
        Title="Family Browser" Height="800" Width="800"
        MinHeight="300" MinWidth="400" Closing="Window_Closing"
    >
    <Controls:MetroWindow.DataContext>
        <vm:ViewModelMain/>
    </Controls:MetroWindow.DataContext>
    <Controls:MetroWindow.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Dark.Red.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Controls:MetroWindow.Resources>
    <Grid>
    </Grid>
</Controls:MetroWindow>

Обновление № 2:

Мы определили, что это ошибка с другой загрузкой .dll в 1. * библиотеке MahApps, хотя я загружал 2. * альфа-содержимое.

Ответы [ 3 ]

0 голосов
/ 08 апреля 2020

Я взял ваш фрагмент и поместил его в новое чистое приложение. Я просто удалил соединение с моделью, поскольку у меня нет вашей модели.

Вот результат: enter image description here

и вот измененный XAML:

<Controls:MetroWindow x:Class="WpfApp1.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      Title="Family Browser"
                      Width="800"
                      Height="800"
                      MinWidth="400"
                      MinHeight="300">
    <Controls:MetroWindow.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Dark.Red.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Controls:MetroWindow.Resources>
    <Grid>
        <TextBlock HorizontalAlignment="Center"
                   VerticalAlignment="Center"
                   FontSize="100"
                   Foreground="{DynamicResource MahApps.Brushes.Accent}"
                   Text="Hello World" />
    </Grid>
</Controls:MetroWindow>

Я думаю, в вашем приложении должно быть что-то еще не так. Если вы можете загрузить не запущенный пример на Github, я могу посмотреть, если я найду ошибку. Возможно, Style или StaticResource неверен или MahApps-DLL не найдена.

Счастливое кодирование Тим

0 голосов
/ 13 апреля 2020

Изображение в решение

Первоначальная проблема заключалась в том, что другие приложения использовали MahApps, когда я пытался использовать MahApps, и загружали обе сборки из разных версий.

Это можно было бы быстрее понять, перейдя в Debug> Windows> Modules, чтобы определить, что есть две разные сборки.

0 голосов
/ 08 апреля 2020

имена чувствительны к регистру. Пожалуйста, попробуйте Dark.Red.xaml. Должно работать с последней альфой.

Счастливого кодирования, Тим

...