4

我正在尝试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>

但是,Visual Studio 2012 给了我这些错误:

  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

4

2 回答 2

3

您有错误的命名空间 ( msdn )。

如果引用的 clr 命名空间与引用自定义类的应用程序代码在同一个程序集中定义,则可以省略程序集。

检查这个命名空间:

xmlns:scintilla="clr-namespace:ScintillaNET;assembly=ScintillaNET"
于 2013-09-01T15:17:10.357 回答
0

我遇到了同样的问题。在搜索时,我发现了一篇关于一个单独的 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"

于 2013-09-29T15:00:48.193 回答