WPF工具包和PresentationFramework中均存在VisualStateManager - 如何解决?

7

我需要在我的WPF窗口中使用VisualStateManager类,但是由于我已经在项目中引用了WPF ToolkitPresentationFramework.dll的程序集,因此C#无法解析VisualStateManager类并给出编译错误,如下所示 - "The type exists in both 'PresentationFramework.dll' and 'WPFToolkit.dll'",我无法继续操作。

如何告诉C#编译器从这两个程序集中的任何一个中使用VisualStateManager类,并使项目成功编译?

3个回答

6
自从.NET4.0版本开始,WPF Toolkit已经被包含在框架中。您应该能够删除WPF Toolkit,更新一些命名空间,然后应用程序仍然可以编译。
这是我们最近从.NET 3.5升级到.NET 4.0的项目所采取的方法。
祝好!

1
WPF Toolkit的/部分/已经移入.NET 4.0框架。VisualStateManager是其中之一,但例如Accordion仍然只能在WPF Toolkit中使用。 - kitti
1
正确,但由于问题涉及到VSM,这仍然是正确的答案。 - Dr. Andrew Burnett-Thompson

0

我曾经遇到过类似的问题,这与VisualStateManager无关,而是与我用于自定义类之一的TemplateVisualStateAttribute有关。

就像this question所述,更改WPFToolkit项目引用中的“别名”即可解决此问题。


0

我遇到了同样的问题,我不能删除ToolKit,因为我需要AutoCompleteBox控件,而且我不想包含和修改工具包源代码;所以我使用的解决方案是为工具包引用使用外部别名。

在Visual Studio中执行此操作,请右键单击WPFToolkit引用,然后选择属性>>然后将“别名”字段更改为WpfToolKit或您选择的任何别名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接