MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

[WIP] Draggable Dialog

Aperta
#1,196 4 commenti 4 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement
Lingua principale
C#
Stelle
16.3k
Fork
3.5k
Merge medio
1g 22h
PR unite (30g)
8

Descrizione

As I know this is not part of Material Design spec.
But if you like to implement it in web, you have easy possibilities to do this with either React or Angular.

For phones I wouldn't like that feature, as you don't have any space to drag the dialog around, but for desktop applications or even on tablets this feature with a wider screens, makes sense, if you maybe like to see what was behind the dialog and it is somehow also Desktop-Application default/expected behavior for dialogs.

Current implementations

There are two styles, which can be applied to the dialog host.

  1. (default) - this style is based on a Popup (PopupEx) for the dialog.
  2. MaterialDesignEmbeddedDialogHost - this style is based on Grid for the dialog.

Current behavior

The current behavior is, ...

  • that a Card is set as the Grid or Popup content.
  • that the dialog will be shown centered to the dialog host.
  • that the content (DialogHost.DialogContent, DialogHost.DialogContentTemplate etc.) is shown in the Card content.
  • that while resizing/dragging the dialog remains centered.

TBD

default
  • As implemented as a popup the drag could be done anywhere on the screen and is not limited to the dialog host. Should this be allowed or should it be limited?
  • Where should the dialog move on resize or drag of the host window? I think PopupEx has already the right behavior, if the dialog is drawn in the window. But if you drag the popup out of the window boundaries should there still be a repositioning?
MaterialDesignEmbeddedDialogHost
  • The drag here could be realized with margins. In opposite to the default style, this is already bounded to the dialog host content or maybe window content.
  • As working with margins, on resize the dialog could disappear. Here we need to develop a resize/maximize/restore strategy.
both
  • What should happen, if the dialog reopens? Should the last position persist (this would be kind of the default behavior, as the properties of the Grid/Popup would be modified on drag)?
  • Should this feature be opt-in or on by default (this would be a breaking change though)?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia esaminando l’implementazione corrente delle finestre di dialogo Popup/PopupEx e l’implementazione di MaterialDesignEmbeddedDialogHost. Risolvi le decisioni elencate relative a limiti, ridimensionamento, riapertura, persistenza e comportamento di opt-in prima di implementare e validare finestre di dialogo trascinabili per entrambi gli stili.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
design, desktop
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.