Disegno un modulo WPF con Window Style = None. Quindi non riesco a vedere la barra di trascinamento nel modulo. Come posso spostare il modulo con WindowStyle = Nessuna proprietà?Impossibile trascinare e spostare un modulo WPF
risposta
Vedere this question.
Fondamentalmente si utilizza il metodo Window.DragMove per questo.
Nella nostra applicazione abbiamo Windows con WindowStyle impostato su "none", abbiamo implementato la funzionalità per trascinare la finestra, ma solo dall'intestazione anziché da qualsiasi punto della finestra. Lo abbiamo fatto aggiungendo un bordo come intestazione, quindi aggiungendo un pollice per riempire l'intero bordo. Quindi gestiamo il metodo DragDelta sul Thumb nel code-behind per la finestra.
<Border
Name="headerBorder"
Width="Auto"
Height="50"
VerticalAlignment="Top"
CornerRadius="5,5,0,0"
DockPanel.Dock="Top"
Background="{StaticResource BackgroundBrush}"
BorderThickness="1,1,1,1"
BorderBrush="{StaticResource BorderBrush}">
<Grid>
<Thumb
x:Name="headerThumb"
Opacity="0"
Background="{x:Null}"
Foreground="{x:Null}"
DragDelta="headerThumb_DragDelta"/>
</Grid>
</Border>
Poi nel code-behind abbiamo il seguente gestore di eventi ...
private void headerThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
Left = Left + e.HorizontalChange;
Top = Top + e.VerticalChange;
}
Non so se questo è meglio che l'altro metodo, è solo il modo in cui abbiamo fatto esso.
Sto usando una finestra principale per contenere le pagine (creazione di un programma di stile di navigazione), e nel codice dietro della mia finestra principale, ho inserito questo ...
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// Begin dragging the window
this.DragMove();
}
... e funziona come un fascino. Questo è con windowstyle = none. È bello nel senso che è possibile fare clic in qualsiasi punto dell'app e spostarlo anziché limitarsi a una barra in alto.
sia all'interno delle finestre sulla funzione del carico o all'interno della griglia è sulla funzione del carico utilizzare un deligate per attivare il metodo DRAGMOVE() cliccando con il mouse
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
this.MouseLeftButtonDown += delegate{DragMove();};
}
- 1. Trascinare un modulo WPF sul desktop
- 2. trascinare e rilasciare senza spostare l'elemento
- 3. WPF listview trascinare senza deselezionare
- 4. Impossibile trascinare un elemento pulsante in Firefox
- 5. Fare clic con il mouse e trascinare Evento WPF
- 6. Come consentire all'utente di spostare un controllo sul modulo
- 7. Trascinare l'immagine dal browser all'applicazione WPF
- 8. Impossibile spostare le schede in PHP Storm
- 9. Come trascinare e rilasciare un pulsante da un pannello a un altro pannello?
- 10. JCrop - Impossibile spostare la selezione
- 11. PRISM e WPF come aggiungere un modulo su richiesta
- 12. combina immagine e sfondo solidcolor per un modulo WPF
- 13. C# wpf - impossibile impostare DisplayMemberPath e ItemTemplate
- 14. come trascinare da un div scorrevole a un oggetto trascinabile e quindi trascinare di nuovo?
- 15. C#: come trascinare un da dal modulo e dai suoi controlli?
- 16. Trascinare il trascinamento e rilasciare
- 17. Come trascinare NSStatusItems
- 18. WPF: Impossibile eliminare i dati trascinato su un ItemsControl
- 19. Visual Studio 2012 - Impossibile spostare file .tt EF
- 20. Trascinare e rilasciare in MobileSafari?
- 21. Trascinare e rilasciare in Tkinter?
- 22. Scenekit - Come posso trascinare e rilasciare
- 23. Trascinare i file sul modulo Delphi non funzionanti
- 24. Impossibile spostare un'app sulla scheda SD
- 25. Trascinare e rilasciare un file su un file .sh
- 26. JavaFx Trascinare e rilasciare un file in un programma
- 27. Android studio - Impossibile spostare Android SDK
- 28. trascinare le finestre senza bordi modulo con il mouse
- 29. jQuery-Ui: impossibile trascinare oggetti all'esterno di una fisarmonica
- 30. Controllo zoom su Modulo WPF
Invece di MouseDown si dovrebbe usare MouseLeftButtonDown, come si può solo chiamata DragMove quando il pulsante principale del mouse non è attivo. –
@ DušanKnežević sì è vero! Sono saltato dentro con una soluzione per dargli una corsa veloce. –