我正在尝试在WPF中使用ScintillaNET
(通过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给了我这些错误:
The name Scintilla does not exist in the namespace "clr-namespace:ScintillaNET".
The tag 'Scintilla' does not exist in XML namespace 'clr-namespace:ScintillaNET. Line 8 position 14.'
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
答案 0 :(得分:2)
您的命名空间错误(msdn)。
如果引用了clr-namespace,则可以省略程序集 在与应用程序代码相同的程序集中定义 引用自定义类。
检查此命名空间:
xmlns:scintilla="clr-namespace:ScintillaNET;assembly=ScintillaNET"
答案 1 :(得分:0)
我遇到了同样的问题。 在搜索时,我发现了一篇关于单独的WPF分支的帖子,提到了http://scintillanet.codeplex.com/SourceControl/latest。
如果你去那里并点击Branches,你可以看到它。
我下载了这个并构建它,然后我将ScintillaNET.dll和ScintillaNET.WPF.dll添加到我的WPF应用程序中。
但是仍然没有运气,将我的项目与我从codeplex获得的项目进行比较,这项工作我发现了
我的应用程序:项目属性 - &gt;申请 - &gt;目标框架设置为.NET Framework 4 Client Profile(这不是完整的.NET FrameWork 4,而是简化版本)
来自codeplex的应用程序设置为.NET Framework 4.将我的应用程序更改为完整的.NET Framework 4后,所有问题都消失了。
命名空间我添加到我的XAML
的xmlns:SN = “http://scintillanet.codeplex.com”