2011-02-24 29 views
4

我在VS2010中用wpfToolkit 3.5作爲引用程序集構建應用程序。wpf VisualState與wpfToolkit衝突?

我試圖從ExpressionBlend 4中添加一些VisualState,並且當我嘗試構建項目時出現以下錯誤。

類型 'System.Windows.VisualState' 同時存在於 'C:\ Program Files文件 (x86)的\參考 大會\微軟\ Framework.NETFramework \ V4.0 \ PresentationFramework.dll' 和'C:\ Program Files文件(x86)的\ WPF 工具包\ v3.5.50211.1 \ WPFToolkit.dll'

這是代碼

<VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="ShowHideRoomNumber"> 
      <VisualState x:Name="Show"/> 
      <VisualState x:Name="Hide"> 
       <Storyboard> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="comboBox"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Hidden}"/> 
        </ObjectAnimationUsingKeyFrames> 
       </Storyboard> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

我也試過和這但同樣的錯誤發生

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

<vsm:VisualStateManager.VisualStateGroups> 
     <vsm:VisualStateGroup x:Name="ShowHideRoomNumber"> 
      <vsm:VisualState x:Name="Show"/> 
      <vsm:VisualState x:Name="Hide"> 
       <Storyboard> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="comboBox"> 
         <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Hidden}"/> 
        </ObjectAnimationUsingKeyFrames> 
       </Storyboard> 
      </vsm:VisualState> 
     </vsm:VisualStateGroup> 
    </vsm:VisualStateManager.VisualStateGroups> 

有什麼建議嗎?

感謝

回答

3

,我已經解決了這個問題的方法是獲得源代碼here的副本,並對其進行修改,以使VisualStateManager和相關類在不同的命名空間(我選擇System.Windows。 VSM)這是一種痛苦,但它會起作用。我預計VSM將從未來版本的工具包中刪除,但我無法證明它。

同時,還有一些其他的東西你可以做,並且每個都有點痛苦+可能不起作用,這取決於你的情況。

  1. 將依賴關係刪除到WPFToolkit。你的代碼可能需要它,所以這不會真正起作用。我很幸運,在我的一個項目中得到了它。
  2. 等待下一個版本的WPFToolkit,並希望它得到修復。誰知道什麼時候會發生,現在已經快一年了。
  3. 使用blend 3或其他與您的Toolkit版本兼容的其他東西。
10

這是外部別名http://msdn.microsoft.com/en-us/library/ms173212.aspx

您可以通過

  1. 通過Visual Studio設置此右擊WPFToolkit參考,查看其屬性,
  2. 將「別名」字段更改爲您喜歡的任何內容。
+0

這是正確的答案,解決了我的問題! – SepehrM 2014-04-05 13:13:44