All Projects → dansiegel → Prism.plugin.pagedialogs

dansiegel / Prism.plugin.pagedialogs

Licence: mit
Note this project is no longer needed as the new Dialog Service in Prism 7.2 accomplishes everything this aimed to solve.

Projects that are alternatives of or similar to Prism.plugin.pagedialogs

Movies
Buy movie tickets in advance, find movie times, and more at "Movies".
Stars: ✭ 33 (+153.85%)
Mutual labels:  prism, xamarin-forms
Prism Documentation
Stars: ✭ 131 (+907.69%)
Mutual labels:  prism, xamarin-forms
Prism
Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications..
Stars: ✭ 4,842 (+37146.15%)
Mutual labels:  prism, xamarin-forms
xamarin-mvvvm-frameworks
A Comparison of MVVM Frameworks for Xamarin Projects
Stars: ✭ 44 (+238.46%)
Mutual labels:  prism, xamarin-forms
Prism-Templates
Prism Templates using the DotNet New cli
Stars: ✭ 13 (+0%)
Mutual labels:  prism, xamarin-forms
prism-xamarin-forms
Tradução da documentação oficial do Prism com exemplos de uso
Stars: ✭ 81 (+523.08%)
Mutual labels:  prism, xamarin-forms
Prism.plugin.popups
This provides extensibility for Prism.Forms INavigationService to handle Popup Views
Stars: ✭ 149 (+1046.15%)
Mutual labels:  prism, xamarin-forms
PrismHandsOn
Prism for Xamarin.Forms入門 Hands-on
Stars: ✭ 22 (+69.23%)
Mutual labels:  prism, xamarin-forms
Prism Samples Forms
Samples that demonstrate how to use various Prism features with Xamarin.Forms
Stars: ✭ 327 (+2415.38%)
Mutual labels:  prism, xamarin-forms
Xamarin.forms.googlemaps
Map library for Xamarin.Forms using Google maps API
Stars: ✭ 483 (+3615.38%)
Mutual labels:  xamarin-forms
Ngx Markdown
Angular markdown component/directive/pipe/service to parse static, dynamic or remote content to HTML with syntax highlight
Stars: ✭ 687 (+5184.62%)
Mutual labels:  prism
Rapid Xaml Toolkit
Tools to accelerate XAML development within Visual Studio.
Stars: ✭ 427 (+3184.62%)
Mutual labels:  xamarin-forms
Xamarin.forms.pancakeview
An extended ContentView for Xamarin.Forms with rounded corners, borders, shadows and more!
Stars: ✭ 744 (+5623.08%)
Mutual labels:  xamarin-forms
Restaurant App
Restaurant App 🍔 is a sample open-source e-Commerce 🛒 application for ordering foods, powered by polyglot microservices architecture and cross-platform development including mobile and web
Stars: ✭ 471 (+3523.08%)
Mutual labels:  xamarin-forms
Realm Dotnet
Realm is a mobile database: a replacement for SQLite & ORMs
Stars: ✭ 927 (+7030.77%)
Mutual labels:  xamarin-forms
Xamarin Bluetooth Le
Bluetooth LE plugin for Xamarin
Stars: ✭ 419 (+3123.08%)
Mutual labels:  xamarin-forms
Gatsby Starter Bee
🐝Full Package | Simple | Fresh UI | Blog Template :: Let's start to blogging with gatsby-starter-bee!
Stars: ✭ 416 (+3100%)
Mutual labels:  prism
Prism Samples Wpf
Samples that demonstrate how to use various Prism features with WPF
Stars: ✭ 937 (+7107.69%)
Mutual labels:  prism
Brainpowerapp
A visual memory training game, a mobile game made with Xamarin for both Android and IOS .
Stars: ✭ 17 (+30.77%)
Mutual labels:  xamarin-forms
Xamarin.forms
Xamarin.Forms Official Home
Stars: ✭ 5,485 (+42092.31%)
Mutual labels:  xamarin-forms

Prism.Plugin.PageDialogs

The Page Dialog plugin for Prims.Forms offers you the ability to quickly and easily add a Page Dialog Service that doesn't rely on the bland dialogs built into Xamarin for each platform. Instead you are able to provide a custom look and feel for each of your projects.

Build Status

Package Version
Prism.Plugin.PageDialogs 2

Platform Initialization

This plugin itself requires no platform initialization however you will need to initialize Rg.Plugin.Popup

In your Prism Application's RegisterTypes you need to do the following:

protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    containerRegistry.RegisterPopupDialogService();

    // If you're using Prism.Plugin.Popups you don't need to do anything else
    // otherwise you can simply add the following:
    containerRegistry.RegisterInstance<IPopupNavigation>(PopupNavigation.Instance);
}

Customized Look & Feel

The built in ActionSheetPage and AlertPage have static properties which you can set at App startup to control the look of the built in pages.

protected override void OnInitialized()
{
    AlertPage.DefaultTitleBarBackgroundColor = (Color)Resources["PrimaryColor"];
    AlertPage.DefaultTitleStyle = (Style)Resources["AlertTitleStyle"];
    AlertPage.DefaultMessageStyle = (Style)Resources["AlertMessageStyle"];
}

Adding a custom Factory

In the event that simply providing custom default styles isn't enough, you can implement a custom IPopupDialogFactory. To control which style Dialog you simply need to set the Style property in either the ActionSheetRequest or AlertDialogRequest. The default PopupDialogFactory ignores the style key. The intent is that you are able to create an Alert or Action Sheet Dialog based on a Style key using.

public class MyFactory : IPopupDialogFactory
{
    public ActionSheetPageBase GetActionSheet(ActionSheetRequest request)
    {
        switch(request.Style)
        {
            case "Foo":
                return new FooActionSheetPage(request);
            case "Bar":
                return new BarActionSheetPage(request);
            default:
                new ActionSheetPage(request);
        }
    }

    public AlertPageBase GetAlertPage(AlertDialogRequest request)
    {
        switch(request.Style)
        {
            case "Foo":
                return new FooAlertPage(request);
            case "Bar":
                return new BarAlertPage(request);
            default:
                return AlertPage(request);
        }
    }
}

When using a custom Factory you can easily register both your factory and the PopupDialogService

protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    containerRegistry.RegisterPopupDialogServiceWithFactory<MyFactory>();
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].