dotnet / maui

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://dot.net/maui
MIT License
22.16k stars 1.74k forks source link

Implement "desktop dialogs" e.g.: FileOpenDialog, FolderBrowserDialog, PrintDialog, etc. #4795

Open TheCakeMonster opened 2 years ago

TheCakeMonster commented 2 years ago

Description

MAUI is the evolution of Xamarin, which was originally intended for mobile devices. However, MAUI expands the targets to include desktop applications. Desktop applications have a few features that are not at all, or less relevant in the mobile space. As a result, I can see there being a gap in the capabilities that are available.

In desktop applications we are used to having a few built-in dialogs that we can use to get desktop-like things done, which are not going to be available in MAUI. It would be great if we could have a few of these early in the life of MAUI to help us deliver apps without multiple people having to reinvent this wheel.

Dialogs that we are used to reaching for when building desktop apps include:

File Open (there is the FilePicker that might cover this scenario) File Save As (not something that really exists in the mobile space; mobile OSes don't really support direct file system access) Select Folder (again, not done in the mobile space very often) Print, and perhaps Print Preview

If these could be added to a backlog, that would be much appreciated.

Public API Changes

UI controls/components:

FileOpenDialog (unless FilePicker sufficiently meets this need) SaveFileDialog FolderBrowserDialog PrintDialog PrintPreviewDialog

Intended Use-Case

My primary use case is applications built in MAUI that are intended to interact with the file system, such as importing, exporting and linking to external files from an application.

The secondary use case is applications that print out information, such as logs, notes, pictures or other created content.

ghost commented 2 years ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

mouralabank commented 1 year ago

There are many different types of desktop dialogs that can be useful for desktop apps, depending on the specific needs and design of the application. Can we have a CustomDialog?

Here are a few examples of commonly used desktop dialogs: