Поведение для ShowFlyoutBehavior не работает в UWP?

Я переношу свое приложение windows8.1 на UWP, и я обнаружил, что многие из моих поведений перестали работать, одним из них является ShowFlyoutBehavior, а код выглядит следующим образом

                        <interactivity:Interaction.Behaviors>
                            <core:EventTriggerBehavior EventName="Tapped">
                                <behaviors:ShowFlyoutBehavior />
                            </core:EventTriggerBehavior>
                        </interactivity:Interaction.Behaviors>

Сообщение об ошибке выглядит примерно так: Невозможно добавить экземпляр типа XX.App.Behaviors.ShowFlyoutBehavior в коллекцию типа Microsoft.Xaml.Interactivity.ActionCollection. Любая идея? Он отлично работает в Windows 8.1. Я уже установил пакет NuGet Microsoft.Xaml.Behaviors.Uwp.Managed


person litaoshen    schedule 18.04.2016    source источник
comment
Оказалось, что IAction закомментирован в коде, что вызывает ошибку.   -  person litaoshen    schedule 19.04.2016


Ответы (1)


Допустим, у вас есть простой xaml:

<Image Source="/Assets/Logo.scale-100.png"
       Height="100" Width="100">
    <FlyoutBase.AttachedFlyout>
        <Flyout>
            <StackPanel>
                <TextBlock Text="Awesome Flyout!" />
            </StackPanel>
        </Flyout>
    </FlyoutBase.AttachedFlyout>
</Image>

Создайте собственное поведение:

public class OpenFlyoutAction: DependencyObject, IAction
{
    public object Execute(object sender, object parameter)
    {
        FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);

        return null;
    }
}

Последний xaml:

<Image Source="/Assets/Logo.scale-100.png"
       Height="100" Width="100">
    <FlyoutBase.AttachedFlyout>
        <Flyout>
            <StackPanel>
                <TextBlock Text="Awesome Flyout!" />
            </StackPanel>
        </Flyout>
    </FlyoutBase.AttachedFlyout>
    <i:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="Tapped">
            <local:OpenFlyoutAction />
        </core:EventTriggerBehavior>
    </i:Interaction.Behaviors>
</Image>

Я предлагаю вам прочитать здесь https://marcominerva.wordpress.com/2013/12/17/using-a-behavior-to-open-attached-flyouts-in-winows-81-store-apps/

person thang2410199    schedule 18.04.2016