MahApps.Metro не может найти ресурсы

Я пытаюсь создать новое приложение WPF, используя MahApps.Metro. Я делаю точно так, как описано в кратком руководстве (http://mahapps.com/MahApps.Metro/guides/quick-start.html):

  • Добавьте в проект пакет MahApps.Metro из Nuget.
  • Добавьте пространство имен xmlns и замените Window на MetroWindow.

В этот момент я могу запустить приложение, но окно прозрачно. Текст строки заголовка и кнопки видны (кнопки не стилизованы), но фон прозрачен.

  • Добавьте код объединенных словарей для окна.

После этого я получаю исключение при запуске:

System.IOException
{"Cannot locate resource 'styles/colours.xaml'."}

Похоже, что по какой-то причине он не может найти ресурсы в сборке. Но я не понимаю, почему.


person Aleksey Shubin    schedule 02.12.2013    source источник
comment
Это смелое, но почти наверняка неверное утверждение в вашем заголовке.   -  person Sheridan    schedule 02.12.2013
comment
@Sheridan, я имел в виду, что у меня не работает. :) Изменил название...   -  person Aleksey Shubin    schedule 02.12.2013
comment
Вам нужно поместить файл Colours.xaml в папку с именем Styles в корневом каталоге.   -  person Sheridan    schedule 02.12.2013
comment
@Sheridan, где мне взять Colours.xaml? Nuget добавил в проект только dll Mahapps.Metro, без файлов .xaml.   -  person Aleksey Shubin    schedule 02.12.2013
comment
Может быть, вам следует связаться с автором этого примера, чтобы запросить его вместе с другими файлами XAML?   -  person Sheridan    schedule 02.12.2013
comment
Я считаю, что проблема где-то в другом. У MahApps более 50 тысяч загрузок в Nuget, и если бы всем потребовалось связаться с автором, в интернете было бы много упоминаний об этой проблеме. Но ничего похожего не нашел...   -  person Aleksey Shubin    schedule 02.12.2013
comment
В последнее время я использую MahApps, и он отлично работает. как и куда вы добавляете объединенные словари?   -  person har07    schedule 02.12.2013
comment
Посмотрев на это еще раз, действительно кажется, что эти файлы Style действительно должны быть включены в dll. Хотя я не могу сказать вам, почему вы не получили эти файлы XAML при загрузке, все, что я могу сделать, это предложить вам попытаться загрузить все файлы еще раз. На вашей связанной странице показаны два способа их загрузки, поэтому на вашем месте я бы попробовал оба.   -  person Sheridan    schedule 02.12.2013
comment
@ har07 Я пытался добавить его как в «App.Resources», так и в «Window.Resources».   -  person Aleksey Shubin    schedule 02.12.2013
comment
Цвета теперь Цвета -› github.com/MahApps/MahApps.Metro/wiki/   -  person punker76    schedule 02.12.2013
comment
@punker76 спасибо! Изменил цвета на цвета, и теперь это работает. Похоже, им нужно обновить свое краткое руководство...   -  person Aleksey Shubin    schedule 04.12.2013
comment
@ punker76, пожалуйста, добавьте это как ответ, и я приму его.   -  person Aleksey Shubin    schedule 04.12.2013


Ответы (1)


из ссылки вики

«Цвета» -> «Цвета»

Да, мы изменили все Colours на Colors ! Названия цветов были непоследовательны, поэтому мы решили изменить название. Также словарь ресурсов изменяется с Colours.xaml на Colors.xaml .

примечания к выпуску для 0.11.0

Быстро как

Заявление

<Application x:Class="WpfApplication.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
  <Application.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/Colors.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

Главное окно

<controls:MetroWindow x:Class="WpfApplication.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="MainWindow"
                      Height="600"
                      Width="800">
  <Grid>
    <!-- now your content -->

  </Grid>
</controls:MetroWindow>
person punker76    schedule 04.12.2013
comment
Это было действительно полезно. Краткое руководство на их сайте не обновляется. - person lena; 17.04.2014