MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
[WIP] Draggable Dialog
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C#
- Estrellas
- 16.3k
- Forks
- 3.5k
- Merge medio
- 1 d 22 h
- PR fusionados (30 d)
- 8
Descripción
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](https://material-ui.com/demos/dialogs/#draggable-dialog) or [Angular](https://stackoverflow.com/a/49706221/3924697).
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)?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza revisando la implementación actual de los diálogos Popup/PopupEx y la implementación de MaterialDesignEmbeddedDialogHost. Resuelve las decisiones indicadas sobre los límites, el redimensionamiento, la reapertura, la persistencia y el comportamiento de opt-in antes de implementar y validar diálogos arrastrables para ambos estilos.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp
- Área
- design, desktop
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100