ScintillaNET в проблемах WPF XAML

Я пытаюсь использовать ScintillaNET в WPF (через Windows Forms Host). Однако я получаю недопустимую разметку XAML. Мой код XAML:

<Window x:Class="ObjectiveWin.Editor"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:scintilla="clr-namespace:ScintillaNET"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ObjectiveWin 2013 Express" Height="392.537" Width="628.358" WindowState="Maximized" Loaded="editor_Loaded">
<Grid>
    <WindowsFormsHost HorizontalAlignment="Left" Height="340" Margin="0,22,0,0" VerticalAlignment="Top" Width="620">
        <scintilla:Scintilla></scintilla:Scintilla>
    </WindowsFormsHost>
</Grid>

However, Visual Studio 2012 gives me these errors:

  1. The name Scintilla does not exist in the namespace "clr-namespace:ScintillaNET".
  2. The tag 'Scintilla' does not exist in XML namespace 'clr-namespace:ScintillaNET. Line 8 position 14.'

  3. The name 'scintilla:Scintilla' was not found. Verify you are not missing an assembly reference and that all referenced assemblies have been built

Что именно я делаю неправильно? Если это имеет значение, я использую .NET Framework 4.5 с VS2012


person inixsoftware    schedule 01.09.2013    source источник


Ответы (2)


У вас неправильное пространство имен (msdn).

Assembly можно опустить, если указанное пространство имен clr определяется в той же сборке, что и код приложения, ссылающийся на пользовательские классы.

Проверьте это пространство имен:

xmlns:scintilla="clr-namespace:ScintillaNET;assembly=ScintillaNET"
person kmatyaszek    schedule 01.09.2013
comment
Спасибо. Теперь он компилируется, но VS2012 по-прежнему жалуется, что имя Scintilla не существует в clr-namespace:ScintillaNET;assembly=ScintillaNET. Что все еще идет не так? - person inixsoftware; 01.09.2013
comment
Это просто VS2012 ошибка? Он компилируется, но все еще есть ошибки XAML!? - person inixsoftware; 01.09.2013
comment
Вероятно, это ошибка. Но если запустить, то все ок. - person kmatyaszek; 01.09.2013
comment
Он выдал XAML Parser Exception при загрузке окна, поэтому проблема все еще существует. Знаете ли вы, что это такое? - person inixsoftware; 01.09.2013
comment
В порядке. Я исправил это сейчас. Я добавил SciLexer.dll в качестве исполняемого файла (.exe, .dll) в проект и установил действие сборки для копирования в выходной каталог, и XAML Parser Exception не было выброшено. - person inixsoftware; 01.09.2013

Я столкнулся с той же проблемой. Во время поиска я нашел сообщение об отдельной ветке WPF, ссылающейся на http://scintillanet.codeplex.com/SourceControl/latest.

Если вы зайдете туда и нажмете на «Ветки», вы увидите это.

Я скачал этот и построил его, затем добавил ScintillaNET.dll и ScintillaNET.WPF.dll в свое приложение WPF.

Но все же не повезло, сравнивая мой проект с проектом, который я получил от codeplex, который работал, я обнаружил, что

Мое приложение: Свойства проекта -> Приложение -> Целевая платформа была настроена на клиентский профиль .NET Framework 4 (это не полная версия .NET Framework 4, а облегченная версия)

Приложение из codeplex было настроено на .NET Framework 4. После изменения моего приложения на полную версию .NET Framework 4 все проблемы исчезли.

Пространство имен, которое я добавил в свой XAML

xmlns:sn="http://scintillanet.codeplex.com"

person Stefan Flipkens    schedule 29.09.2013