wpf VisualState与wpfToolkit冲突?

时间:2011-02-24 17:36:43

标签: wpf expression-blend

我正在使用wpfToolkit 3.5作为引用程序集在VS2010中构建应用程序。

我尝试在ExpressionBlend 4中添加一些VisualStates,当我尝试构建项目时,我收到以下错误。

  

类型'System.Windows.VisualState'   存在于'c:\ Program Files中   (86)\参考   大会\微软\ 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>

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:11)

这是 extern别名的用途 http://msdn.microsoft.com/en-us/library/ms173212.aspx

您可以通过Visual Studio

进行设置
  1. 右键单击WPFToolkit引用以查看其属性
  2. 将“别名”字段更改为您喜欢的任何内容。

答案 1 :(得分:3)

我解决此问题的方法是获取源代码here的副本,并对其进行修改,以便VisualStateManager和相关类位于不同的命名空间中(我选择了System.Windows.VSM)这是一种痛苦,但它会起作用。我希望VSM将从该工具包的未来版本中删除,但我无法证明它。

与此同时,还有其他一些你可以做的事情,而且每一个都有点痛苦+可能不会起作用,这取决于你的情况。

  1. 将依赖项删除到WPFToolkit。你的代码可能需要它,所以这不会真正起作用。我很幸运,在我的一个项目中逃脱了它。
  2. 等待WPFToolkit的下一个版本,并希望它得到修复。谁知道什么时候会发生,现在差不多一年了。
  3. 使用混合3或与您的Toolkit版本兼容的其他内容。