wpf VisualState конфликтует с wpfToolkit? - PullRequest
4 голосов
/ 24 февраля 2011

Я создаю приложение в VS2010 с wpfToolkit 3.5 в качестве сборочной сборки.

Я попытался добавить несколько VisualStates из ExpressionBlend 4, и я получаю следующую ошибку при попытке построить проект.

Тип 'System.Windows.VisualState' существует в обоих 'c: \ Program Files (X86) \ Ссылка Сборки \ Microsoft \ 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 ]

11 голосов
/ 07 августа 2013

Это то, что внешний псевдоним для http://msdn.microsoft.com/en-us/library/ms173212.aspx

. Вы можете установить это через Visual studio,

  1. Щелкните правой кнопкой мыши ссылку WPFToolkit, чтобыпросмотреть его свойства,
  2. Измените поле "псевдоним" на что угодно.
3 голосов
/ 13 мая 2011

Я решил эту проблему, получив копию исходного кода здесь и изменив ее так, чтобы VisualStateManager и связанные классы находились в другом пространстве имен (я выбрал System.Windows. VSM) Это какая-то боль, но это сработает. Я ожидаю, что VSM будет удален из будущих версий инструментария, но я не могу доказать это.

Между тем, есть несколько вещей, которые вы можете сделать, и каждая из них является своего рода болью +, вероятно, не сработает, в зависимости от вашего случая.

  1. Отбросить зависимость от WPFToolkit. Ваш код, вероятно, нуждается в этом, так что на самом деле это не сработает. Мне повезло, и это сработало в одном из моих проектов.
  2. Дождитесь следующего выпуска WPFToolkit и надеемся, что он будет исправлен. Кто знает, когда это произойдет, уже почти год.
  3. Используйте смесь 3 или что-то еще, совместимое с вашей версией Инструментария.
...