Jos*_*dad 8 prism xamarin.forms
我正在使用自定义 DialogService,我遇到的问题是我首先将页面显示为模态,当发送以显示 DialogPage 时,它显然没有显示,但它确实在模型页面的后面。
模态页面的调用
await _navigationService.NavigateAsync("ProfilePage", useModalNavigation: true);
Run Code Online (Sandbox Code Playgroud)
Xaml 自定义对话框
<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>
Run Code Online (Sandbox Code Playgroud)
自定义对话框调用
public static void ShowAlert(this IDialogService dialogService, string title, string message)
{
var parameters = new DialogParameters
{
{ "title", title },
{ "message", message }
};
dialogService.ShowDialog("MessageDialog", parameters);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我已经解决了!
添加插件:Prism.Plugin.Popups
然后在 App.xaml.cs 中添加以下代码行: containerRegistry.RegisterPopupDialogService();
文档位于以下页面: popups.prismplugins.com
问候!
您所描述的是 Prism 7.2 中的一个已知错误。此问题已在 Prism 8 中得到解决,或者正如您所指出的,您可以简单地使用 Prism.Plugin.Popups 来使用该服务的 PopupPage 变体。
归档时间: |
|
查看次数: |
563 次 |
最近记录: |