不带dll的C#WPF.MDI
我找到了的源代码,并尝试在我的项目中使用它,而不使用任何特定的DLL。所以,我在项目中添加了源代码 然后,编写xmlns声明不带dll的C#WPF.MDI,c#,.net,wpf,dll,mdi,C#,.net,Wpf,Dll,Mdi,我找到了的源代码,并尝试在我的项目中使用它,而不使用任何特定的DLL。所以,我在项目中添加了源代码 然后,编写xmlns声明xmlns:mdi=“clr namespace:WPF.mdi”,并使用MdiChild <mdi:MdiContainer Theme="Aero"> <mdi:MdiChild /> </mdi:MdiContainer> 但是,我收到一个错误XamlParseExcept
xmlns:mdi=“clr namespace:WPF.mdi”
,并使用MdiChild
<mdi:MdiContainer Theme="Aero">
<mdi:MdiChild />
</mdi:MdiContainer>
但是,我收到一个错误XamlParseException
我想,我做错了。但是,有什么解决办法吗
更新:
当我将WPF.MDI.dll放入带有.exe文件的文件夹并启动它时-没有错误。为什么要查找dll?请尝试如下设置命名空间声明:
xmlns:mdi="clr-namespace:WPF.MDI;assembly=MDISource"
因此,添加组件
零件。
如果类位于不同的程序集中,则需要添加此项。见:
assembly=包含部分或全部引用CLR的程序集
命名空间。此值通常只是程序集的名称,而不是
路径,不包括扩展名(如.dll或.exe)。
必须将该程序集的路径建立为项目引用
在包含要映射的XAML的项目文件中。在里面
为了合并版本控制和强名称签名,程序集
值可以是由AssemblyName定义的字符串,而不是
简单字符串名
如果引用的clr命名空间与引用自定义类的应用程序代码在同一程序集中定义,则可以省略程序集。或者,这种情况下的等效语法是指定assembly=,在等号后面没有字符串标记
更新
删除
MdiContainer.cs
if (Environment.OSVersion.Version.Major == 5)
ThemeValueChanged(this, new DependencyPropertyChangedEventArgs(ThemeProperty, Theme, ThemeType.Luna));
else
ThemeValueChanged(this, new DependencyPropertyChangedEventArgs(ThemeProperty, Theme, ThemeType.Aero));
您是否也收到了有关出错原因的详细错误消息?
调用类型为“WPF.MDI.MdiContainer”的构造函数,满足指定的绑定约束,导致异常。“行号”为“7”,位置为“10”。“
字符串是
对我没有帮助。我需要写些什么来代替MDISource
?我不明白你可以忽略这个答案,我看错了你的问题。您在同一个项目中添加了MDI,对吗?是的,我在我试过的同一个项目中添加了它,但消息并没有显示:(可能,因为异常更早出现)。