Ho bisogno di aggiungere una funzionalità alla mia semplice applicazione - per consentire all'utente di cambiare la dimensione del carattere per l'intera applicazione. È facile da fare? Puoi darmi qualche suggerimento su come iniziare? È necessario avere solo 3 dimensioni di carattere predefinite, ma la prima e unica soluzione che mi è venuta in mente è creare 3 temi diversi. È possibile renderlo più semplice?WPF - modifica dimensione carattere globale in fase di esecuzione
risposta
Fortunatamente, FontSize
utilizza Property Value Inheritance. Ciò significa che fino a quando non si esegue l'override, FontSize
verrà automaticamente propagato a tutti gli elementi di testo secondari. Di conseguenza, è possibile impostare una sola:
<Window FontSize="10" ...>
e si applicherà a tutti gli elementi di testo in quella finestra che non hanno una dimensione di carattere. Per cambiarlo in codice è semplice così:
this.FontSize = 20;
nel code-behind della finestra cambierà tutte le dimensioni dei caratteri specificati al volo. Questo funziona anche per le cose che non sembrano supportare la dimensione del carattere:
<Grid TextElement.FontSize="15" ...>
Lo stesso vale per le altre proprietà del testo che hai citato.
Al livello più elementare è necessario associare la proprietà FontSize
del vostro TextBlocks
ecc, per una variabile che si può quindi cambiare per essere uno dei tre valori predefiniti:
<TextBlock FontFamily="Arial" Text="Sample text" FontSize="{Binding TextSize}" />
Tuttavia, si avrebbe bisogno per ricordare di aggiungere questo a tutto il il testo.
Una soluzione migliore sarebbe quella di associare la dimensione degli stili utilizzati, ma di nuovo tutto il testo dovrebbe essere in stile. Se hai usato uno stile implicito, non dovresti ricordarti di aggiungere il riferimento al tuo testo, ma tutto il tuo testo dovrebbe apparire lo stesso. Se questo è un problema o meno dipenderà dalla tua applicazione.
Application.Current.MainWindow.FontSize = 12;
- 1. Dimensione carattere WPF globale
- 2. Modifica degli stili in fase di esecuzione in WPF
- 3. Modifica dimensione carattere in relazione a Windowsize con WPF?
- 4. Cambia carattere in fase di esecuzione
- 5. Modifica proprietà log4j in fase di esecuzione
- 6. Modifica implementazione/classe in fase di esecuzione
- 7. Modifica oggetto iniettato in fase di esecuzione
- 8. risorse immagine WPF e modifica dell'immagine nel controllo wpf in fase di esecuzione
- 9. Conversione tra dimensione carattere WPF e dimensione carattere "standard"
- 10. Misurazione dei controlli creati in fase di esecuzione in WPF
- 11. Modifica tipo/dimensione carattere predefinito in TinyMCE
- 12. Ridimensionamento di TextBox in fase di esecuzione in WPF
- 13. Dimensione di un oggetto in fase di esecuzione
- 14. C++ dimensione di memoria dinamica in fase di esecuzione
- 15. dizionari di risorse wpf di commutazione in fase di esecuzione
- 16. Modifica del valore di una macro in fase di esecuzione
- 17. Stile finestra WPF non funzionante in fase di esecuzione
- 18. Immagine nel pulsante WPF non visibile in fase di esecuzione
- 19. WPF + PRISM Come modificare la regione in fase di esecuzione
- 20. WPF: Come modificare CurrentUICulture in fase di esecuzione
- 21. Definire un ControlPilota WPF in fase di esecuzione
- 22. Modifica della lingua per NSLocalizedString() in fase di esecuzione
- 23. C# Crea e modifica classe in fase di esecuzione
- 24. Modifica del colore delle righe JList in fase di esecuzione
- 25. Modifica codice groovy in fase di esecuzione nell'applicazione Grails
- 26. Modifica dei collegamenti Guice in fase di esecuzione
- 27. Modifica SpriteNode PhysicsBody Size in fase di esecuzione
- 28. Modifica parametro attributo personalizzato in fase di esecuzione
- 29. Modifica indirizzo endpoint WebService in fase di esecuzione
- 30. Modifica dimensione carattere terminale con C++
Questa è una soluzione incredibilmente semplice rispetto ad altre che ho visto. Grazie per l'aiuto! – TheBlindSpring