Come posso centrare un elemento nella tela wpf utilizzando le proprietà associate?Come centrare un elemento nella tela wpf
risposta
Qualcosa di simile.
double left = (Canvas.ActualWidth - element.ActualWidth)/2;
Canvas.SetLeft(element, left);
double top = (Canvas.ActualHeight - element.ActualHeight)/2;
Canvas.SetTop(element, top);
L'unico modo che conosco per fare questo è quello di capire la dimensione della tela, e quindi impostare le proprietà basate questa. Questo può essere fatto utilizzando un gestore di eventi per SizeChanged
sulla tela:
parentCanvas.SizeChanged += new SizeChangedEventHandler(parentCanvas_SizeChanged);
void parentCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
parentCanvas.SetLeft(uiElement, (parentCanvas.ActualWidth - uiElement.ActualWidth)/2);
parentCanvas.SetTop(uiElement, (parentCanvas.ActualHeight - uiElement.ActualHeight)/2);
}
questo evento si accenderà al caricamento della finestra. –
Dovrebbe, sì. Verrà attivato ogni volta che vengono modificate le proprietà ActualWidth/ActualHeight della tela. (Ad esempio durante l'aggiornamento del layout) – Robin
Grande. Ma credo che dovrebbe essere Canvas.SetLeft e Canvas.SetTop; non l'istanza della tela genitore. –
si può mettere la tela e l'elemento che si desidera essere centrato all'interno di una griglia:
<Grid>
<Canvas Width="200" Height="200" Background="Black" />
<Button Width="50" Height="20" > Hello
</Button>
</Grid>
mi sono imbattuto in questo post , perché stavo cercando un modo per centrare un elemento all'interno di una tela in XAML, invece di usare Proprietà allegate.
Solo nel caso, si è venuto per lo stesso motivo:
<Canvas x:Name="myCanvas">
<Grid Width="{Binding ActualWidth, ElementName=myCanvas}"
Height="{Binding ActualHeight, ElementName=myCanvas}">
<Label Content="Hello World!"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Grid>
</Canvas>
Fantastico! Funziona "così com'è", senza codice dietro. L'ho usato per centrare un UserControl, nel posto dell'etichetta. –
Ora c'è una griglia lenta dentro. Una soluzione senza una griglia sarebbe bella. –
- 1. fabric.js ... come centrare tela
- 2. Xamarin.Forms - come centrare assolutamente un elemento nella pagina?
- 3. WPF Come centrare l'Image.Source
- 4. Come centrare la tela in html5
- 5. WPF - centrare il contenuto in un scrollviewer?
- 6. Come centrare un'app WPF sullo schermo?
- 7. Come disegnare un rettangolo tratteggiato nella tela?
- 8. Come centrare il testo in un elemento div?
- 9. Come centrare il testo in un elemento rect in d3?
- 10. Come centrare verticalmente le immagini all'interno di un elemento LI?
- 11. Come centrare un elemento posizionato in modo assoluto?
- 12. WPF Virtualizzazione di una tela
- 13. Come rendere bitmap su tela in WPF?
- 14. Salvare una tela WPF come immagine
- 15. immagine di sfondo della tela wpf dinamicamente
- 16. Ridimensionare un percorso nella tela Android
- 17. Tela Cancella nella Paper.js
- 18. Come centrare l'elemento html nella finestra del browser?
- 19. Centrare una campata verticale all'interno di un elemento
- 20. Come caricare l'immagine nella tela HTML5
- 21. Ionico: come centrare un div?
- 22. WPF: Ruota rettangolo e posizionalo su tela
- 23. Come tagliare parte di un testo nella tela HTML5?
- 24. Stiramento orizzontale di una tela WPF
- 25. Come ottenere la dimensione ridimensionata di un elemento WPF Visual
- 26. Miglioramento delle prestazioni della tela WPF
- 27. Come centrare un iframe orizzontalmente?
- 28. Come eliminare un elemento scelto nella matrice?
- 29. Disegna 2 scene nella stessa tela - three.js
- 30. Come posso trovare un elemento in un ListBox WPF digitando?
può questo essere scritto all'interno di una classe che eredita una classe tela come proprietà associata. –