Поведение для 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/