首先它们两个的版本肯定不一样,对吧!逻辑是这样的,因为 WpfToolKit.dll 要引用 PresentationFramework.dll,如果存在 VisualStateManager 冲突,那么 WpfToolKit.dll 就无法编译成功,因此,WpfToolKit.dll 引用的 PresentationFramework.dll 中肯定没有 VisualStateManager 类。所以,最先想到的解决方案就是升级或降级 WpfToolKit.dll 的版本到你现在使用的 PresentationFramework.dll 版本。
PS: .Net 4.0 以及集成了 WpfToolKit,不必额外引用 WpfToolKit 。
问题的症结就是你说的这样,但是WpfToolKit貌似只到v3.5。你说4.0集成了Wpdtoolkit可是我没有找到accordion这个控件呢,我引用wpftoolkit就是为了用这个控件。结果出现VisualStateManager冲突
@翻墙小龙虾: 我的意思是 WpfToolKit 停止的更新的原因,就是因为控件被 .Net 收编了,至于是否全部收编,我就不知道了。但是有一点我是可以肯定的,真的是"WpfToolKit也没有源码修改不了命名空间。",事实上是有源码的,http://wpf.codeplex.com/SourceControl/latest,再不济,你不会反编译吗?
别名
using MIO=System.IO;
using YIO=System.IO;
给命名空间起别名
或者每次使用的时候,都要加上完整的命名空间
使用外部别名解决冲突问题,https://msdn.microsoft.com/zh-cn/library/ms173212.aspx
步骤:
1、右击Wpftoolkit程序集-属性打开属性窗口
2、将别名任意其它名称