Xamarin Forms Prism DialogService显示在ModalNavigation后面

时间:2019-12-02 14:47:20

标签: xamarin.forms prism

我使用的是自定义DialogService,我遇到的问题是,我首先将页面显示为模态,并且在发送以显示DialogPage时似乎未显示该页面,但实际上它位于模型页面的后面。

调用模式页面

await _navigationService.NavigateAsync("ProfilePage", useModalNavigation: true);

Xaml CustomDialog

<ContentView  xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="http://prismlibrary.com"
              prism:DialogLayout.LayoutBounds="0.5, 0.5, -1, -1"
             prism:DialogLayout.RelativeWidthRequest="0.60"
              BackgroundColor="White"
             x:Class="ComedorIndustrial.Prism.Views.MessageDialog">

    <Grid Padding="30,60">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Image Source="iconoError.png" />
        <Label Text="{Binding Title}" HorizontalTextAlignment="Center" TextColor="#ee3837" Grid.Row="1" Style="{StaticResource RobotoBold}" FontSize="30"/>
        <Label Text="{Binding Message}" HorizontalTextAlignment="Center" TextColor="#bdbcc2" Grid.Row="2" FontSize="14" />
        <Button Text="Volver a intentar"
            Command="{Binding CloseCommand}"
            BackgroundColor="#ee3837" BorderRadius ="25"  TextColor="White" HorizontalOptions="FillAndExpand" Opacity="1" FontSize="12" Margin="0,15,0,0"
            Grid.Row="3"/>
    </Grid>

</ContentView>

自定义对话框调用

   public static void ShowAlert(this IDialogService dialogService, string title, string message)
    {
                var parameters = new DialogParameters
        {
            { "title", title },
            { "message", message }
        };
        dialogService.ShowDialog("MessageDialog", parameters);
    }

编辑:

  

我已经解决了!

添加插件:Prism.Plugin.Popups

然后在App.xaml.cs中添加以下代码行:containerRegistry.RegisterPopupDialogService();

文档在下一页上: popups.prismplugins.com

致谢!

1 个答案:

答案 0 :(得分:1)

您所描述的是Prism 7.2中的一个已知错误。这个问题已在Prism 8中解决,或者您已经注意到,您可以简单地使用Prism.Plugin.Popups来使用服务的PopupPage变体。