Добавление существующего проекта в Решение проблем.

1

Я пытаюсь добавить https://modernuicharts.codeplex.com/ проект WPF в мое решение. Я извлек проекты, которые необходимы для wpf

Library - De.TorstenMandelkow.MetroChart.WPF
TestApplications - TestApplication.Shared
                 - TestApplicationWPF
De.TorstenMandelkow.MetroChart

Я щелкнул правой кнопкой мыши по моим текущим решениям, и я пошел в Add → Add Existing project и добавил вышеупомянутые проекты.

Когда я устанавливаю TestAplicationWPF в качестве запуска Project, проект выполняется полностью нормально.

Моя цель состоит в том, чтобы иметь кнопку, которая будет отображать современный интерфейс пользовательских интерфейсов в моем другом проекте под названием "WPF".

WPF - ViewModel

//Button Code
public MainWindow ShowModernUI()
{
    return new TestApplicationWPF.MainWindow();
}

Он возвращает эту ошибку A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll

Я проверил внутреннее исключение и дал мне "Cannot find resource named 'PageContent' который соответствует тесту TestAplicationWPF.MainWindow.xaml

TestAplicationWPF.MainWindow.xaml

<ContentControl Content="{Binding}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ContentTemplate="{StaticResource PageContent}" />

Содержание страницы из ресурсного словаря в TestAplicationWPF.

Моя попытка исправить проблему состояла в том, чтобы создать копию словаря ресурсов в моем проекте "WPF", и она удалила ошибку, но ничего не отображается. Могу ли я спросить, как отобразить MainWindow из TestApplicationWPF

Теги:
wpf

1 ответ

1
Лучший ответ

Вот как это исправить:

В библиотеке есть несколько проблем, когда раньше был пакет Nuget, но он был заблокирован, поэтому я покажу вам, как компилировать и ссылаться на библиотеку в вашем приложении WPF.

  • скачать файл SourceAndTestApplications.zip, нажав кнопку "Загрузить" справа
  • извлеките папку MetroChart где-нибудь и откройте MetroChart.sln внутри нее

Если вы используете VS2013, появится следующий экран:

Изображение 174551

Не о чем беспокоиться, просто нажмите ОК и закройте отчет о миграции, который он открыл в IE

Опять же, если вы находитесь под Windoww 8.1, появится следующее:

Изображение 174551

Просто нажмите OK.

Теперь вам нужно что-то сделать для компиляции:

  1. открыть Configuration Manager
  2. выберите Release Build
  3. De.TorstenMandelkow.MetroChart Build для De.TorstenMandelkow.MetroChart

Изображение 174551

Здание

  • щелкните правой кнопкой De.TorstenMandelkow.MetroChart.WPF проект De.TorstenMandelkow.MetroChart.WPF и создайте его
  • при построении найдите DLL в MetroChart\De.TorstenMandelkow.MetroChart.WPF\bin\Release

Ссылка на проект

  • создать новый проект WPF
  • добавить ссылку на De.TorstenMandelkow.MetroChart.dll

XAML:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:metroChart="clr-namespace:De.TorstenMandelkow.MetroChart;assembly=De.TorstenMandelkow.MetroChart"
        xmlns:wpfApplication3="clr-namespace:WpfApplication3"
        Title="MainWindow"
        Width="525"
        Height="350">
    <Window.Resources>
        <wpfApplication3:MyObjectCollection x:Key="MyObjectCollection">
            <wpfApplication3:MyObject Category="Category1" Value="100" />
            <wpfApplication3:MyObject Category="Category2" Value="200" />
            <wpfApplication3:MyObject Category="Category3" Value="300" />
        </wpfApplication3:MyObjectCollection>
        <metroChart:ResourceDictionaryCollection x:Key="CustomColors">
            <ResourceDictionary>
                <SolidColorBrush x:Key="Brush1" Color="#FF5B9BD5" />
            </ResourceDictionary>
            <ResourceDictionary>
                <SolidColorBrush x:Key="Brush2" Color="#FFED7D31" />
            </ResourceDictionary>
            <ResourceDictionary>
                <SolidColorBrush x:Key="Brush3" Color="#FFA5A5A5" />
            </ResourceDictionary>
            <ResourceDictionary>
                <SolidColorBrush x:Key="Brush4" Color="#FFFFC000" />
            </ResourceDictionary>
            <!--  add more values with a different key  -->
        </metroChart:ResourceDictionaryCollection>
    </Window.Resources>
    <Grid>
        <metroChart:PieChart  Palette="{StaticResource CustomColors}"
      >
            <metroChart:PieChart.Series>
                <metroChart:ChartSeries DisplayMember="Category"
                                        ItemsSource="{StaticResource MyObjectCollection}"
                                        ValueMember="Value" />
            </metroChart:PieChart.Series>
        </metroChart:PieChart>
    </Grid>
</Window>

Код-за:

using System.Collections.ObjectModel;
using System.Windows;

namespace WpfApplication3
{
    /// <summary>
    ///     Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow() {
            InitializeComponent();
        }
    }

    internal class MyObject
    {
        public string Category { get; set; }
        public int Value { get; set; }
    }

    internal class MyObjectCollection : ObservableCollection<MyObject>
    {
    }
}

результат

Изображение 174551

См. Https://modernuicharts.codeplex.com/documentation для получения справки.

  • 0
    Привет Айбэ, это было АБСОЛЮТНО ФАНТАСТИЧЕСКОЕ. Не мог бы стать лучше. Спасибо, что нашли время и подробно объяснили это шаг за шагом. Определенно сделал мой день =)
  • 0
    Рад, что это помогло!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню