Поведение для 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. Я уже установил пакет Microsoft.Xaml.Behaviors.Uwp.Managed NuGet

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/

Другие вопросы по тегам