0

我正在将我的 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 包

4

1 回答 1

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;
    }
}

最终的xml:

<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/

于 2016-04-18T22:41:43.913 回答