Использование ICSharpCode.AvalonEdit на .Net 3.5?

2

Я пытаюсь использовать элемент ICSharpCode.AvalonEdit.TextEditor из проекта SharpDevelop 4.0 в приложении WPF, которое я создаю, но я не могу заставить его работать.

Я проверил копию исходного кода из svn://svnmirror.sharpdevelop.net/sharpdevelop/trunk/SharpDevelop/src/Libraries/AvalonEdit в версии 4304. Затем я построил проект с использованием Visual Studio 2008 SP1, который преуспел без ошибок.

Затем я создал пустой новый проект WPF, добавил DLL сборки в панель инструментов и сбросил элемент управления TextEditor в пустое окно по умолчанию, например:

<Window x:Class="AvalonEditTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:avalonedit="http://icsharpcode.net/sharpdevelop/avalonedit"        
    Title="Window1" Height="300" Width="300" >
    <Grid x:Name="LayoutRoot">
        <avalonedit:TextEditor Name="textEditor" />
    </Grid>
</Window>

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

Я что-то упустил, или AvalonEdit немного сломан?

[EDIT: Я начинаю думать, что это может быть связано с моей конкретной настройкой. Я запускаю 64-битный Windows 7 RC. Может быть, что-то с этим связано? Я попытался создать его только для x86, не имеет значения.]

Теги:
text-editor
sharpdevelop
avalonedit

3 ответа

2

Вы уверены, что ваша декларация пространства имен верна?

Вы можете попробовать что-то вроде этого:

<Window x:Class="Editor.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300" 
    xmlns:e="clr-namespace:ICSharpCode.AvalonEdit;assembly=ICSharpCode.AvalonEdit">
    <Grid>
        <e:TextEditor x:Name="Editor" WordWrap="True" Height="200">          
        </e:TextEditor>
    </Grid>
</Window>

Мне удалось заставить его работать без каких-либо проблем.

  • 0
    Только что попробовал, без разницы на моей машине. Какую версию исходного кода / двоичных файлов вы используете?
  • 0
    Также использую 4304. Я только что проверил часть AvalonEdit. Мне пришлось изменить файл проекта, чтобы он был собран. Затем я добавил ссылку на эту DLL в моем проекте, а затем использовал xaml, приведенный выше. Я не добавил элемент управления на панель инструментов.
Показать ещё 1 комментарий
0

Это работает для меня с последней версией

<DockPanel LastChildFill="True">
    <avalonedit:TextEditor 
        HorizontalAlignment="Stretch"
        Name="textEditor1" 
        VerticalAlignment="Stretch" />
</DockPanel>
0

AvalonEdit TextEditor - это просто представление для модели TextDocument. Проблема заключалась в том, что новый экземпляр AvalonEdit не подключался к какому-либо экземпляру модели, поэтому редактировать ничего не удалось.

Причина, по которой работает код statictype, заключалась в том, что он не использовал <avalonedit:TextEditor/>, но <avalonedit:TextEditor></avalonedit:TextEditor>. Это присвоит пустой строке свойство Text, что заставит редактор неявно создать новый документ.

Но это не относится к последним версиям AvalonEdit, теперь редактор всегда будет создавать новый TextDocument.

  • 0
    Какое недавнее недавнее?
  • 0
    На самом деле это было дольше, чем я думал - ревизия 3930. Поскольку вы используете 4304, в вашем случае это должно быть другой проблемой. Тогда я бы предположил, что текстовый редактор не находит своего шаблона. Хотя понятия не имею, почему это произойдет.

Ещё вопросы

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