2010-07-21 39 views
2

我試圖通過將Silverlight平臺中的DLL引入WPF來訪問System.Windows.VisualStateManager。它是System.Windows.dll,它與另一個dll(我相信WindowsBase.dll)發生衝突,所以我給了程序集一個別名來解決那裏的複雜問題。在我的代碼後面,我可以訪問所有的類/枚舉/什麼 - 不是我需要的,但我需要將VisualStateGroups添加到我的頁面的XAML中。所以我說這一點:用於別名程序集的WPF xmlns?

xmlns:vsm="clr-namespace:System.Windows;assembly=PresentationFramework" 

我需要這些元素:

<vsm:VisualStateManager.VisualStateGroups> 
<vsm:VisualStateGroup x:Name="DragCue"> 
<vsm:VisualState x:Name="NoDrop"> 

的問題是,VSM似乎別名WindowsBase.dll中的命名空間。它真的在做什麼,它不允許我訪問VisualStateManager,我可以在代碼中成功地引用VisualStateManager,並且可以在測試項目中成功訪問它,以確保它能夠正常工作。它應該是一樣簡單,只需要複製...有沒有一種方法明確地說我只希望xmlns:vsm指向特定別名類的命名空間?

回答

0

我意識到這個話題已經老了,而且您可能已經找到了解決辦法,但出於好奇,您爲什麼需要引入不同的視覺狀態管理器? WPF提供了一個我認爲與Silverlight幾乎相同的東西,而Silverlight的東西只是有一些與Web相關的東西正在進行。

+0

如果您在wpf4的新應用程序中使用wpf3.5的舊庫,則可能需要wpf4內建vsm和WPFToolkit的vsm。 – 2011-02-17 19:30:25