Potrzebuję dodać jedną funkcjonalność do mojej prostej aplikacji - aby umożliwić użytkownikowi zmianę rozmiaru czcionki dla całej aplikacji. Czy to łatwe? Czy możesz dać mi wskazówkę, jak zacząć? Wymagane jest posiadanie tylko 3 wstępnie zdefiniowanych rozmiarów czcionek, ale pierwszym i jedynym rozwiązaniem, które przyszło mi do głowy, jest stworzenie 3 różnych motywów. Czy można go uprościć?WPF - zmiana globalnej wielkości czcionki w czasie wykonywania
Odpowiedz
Na szczęście FontSize
używa Property Value Inheritance. Oznacza to, że dopóki go nie zastąpi, FontSize
będzie automatycznie propagowany do wszystkich potomnych elementów tekstowych. W rezultacie, można ustawić jedno:
<Window FontSize="10" ...>
i będzie mieć zastosowanie do wszystkich elementów tekstowych w tym oknie, które nie mają rozmiar czcionki. Zmiana kodu jest również prosta:
this.FontSize = 20;
w polu kodu okna zmieni wszystkie nieokreślone rozmiary czcionek w locie. Działa to również w przypadku elementów, które nie obsługują rozmiaru czcionki:
<Grid TextElement.FontSize="15" ...>
To samo dotyczy innych właściwości tekstu, o których wspomniałeś.
Na najbardziej podstawowym poziomie trzeba związać własność swoją TextBlocks
itp FontSize
, do zmiennej, które można następnie zmienić za jeden z trzech zdefiniowanych wartości:
<TextBlock FontFamily="Arial" Text="Sample text" FontSize="{Binding TextSize}" />
jednak będzie trzeba pamiętaj, aby dodać ten tekst do wszystkie swój tekst.
Lepszym rozwiązaniem byłoby powiązanie rozmiaru używanych stylów, ale znowu cały tekst musiałby być stylizowany. Jeśli używałeś niejawnego stylu, nie musiałbyś pamiętać, aby dodać odniesienie do tekstu, ale cały tekst musiałby wyglądać tak samo. To, czy to problem, zależy od twojej aplikacji.
Application.Current.MainWindow.FontSize = 12;
- 1. WPF i MVVM: Zmiana konwertera powiązania danych w czasie wykonywania
- 2. Renderowanie obrazu w czasie wykonywania w WPF
- 3. Zmiana koloru wiersza JList w czasie wykonywania
- 4. Zmiana właściwości w czasie wykonywania log4j
- 5. Zmiana rozmiaru THREE.CubeGeometry w czasie wykonywania
- 6. Zmiana implementacji/klasy w czasie wykonywania
- 7. Zmiana parametru atrybutu niestandardowego w czasie wykonywania
- 8. Zmiana ikony czcionki w WPF przy użyciu czcionki niesamowitej
- 9. WPF: Jak zmienić CurrentUICulture w czasie wykonywania
- 10. przełączanie słowników aplikacji wpf w czasie wykonywania
- 11. Ładowanie XAML w czasie wykonywania?
- 12. Średniej wielkości czcionki w css
- 13. Dynamiczne zmiany wielkości czcionki dopasowanie wielkości pojemnika
- 14. Jak zmienić rozmiar formantu użytkownika w WPF w czasie wykonywania
- 15. Zmiana adresu punktu końcowego usługi WebService w czasie wykonywania
- 16. Zmiana szerokości paska postępu dodanego w czasie wykonywania
- 17. Zmiana nazwy pliku dziennika kilka razy w czasie wykonywania
- 18. Zmiana wzorca lub układu konwersji log4net w czasie wykonywania
- 19. C# WPF dodać kontrolę do okna głównego w czasie wykonywania
- 20. Tworzenie komponentów w czasie wykonywania - Delphi
- 21. Zmiana czcionki w UITabBarItem
- 22. Zmiana wielkości łańcucha w Eclipse
- 23. Aplikacja WPF używająca zmiennej globalnej
- 24. Awaria OCMock w czasie wykonywania
- 25. metoda wywołania w czasie wykonywania
- 26. Powielanie składników w czasie wykonywania
- 27. Rejestrowanie metoda czasie wykonywania
- 28. Kontekst struktury globalnej jednostki w aplikacji WPF
- 29. Zmiana czcionki tekstu w RichTextBox
- 30. Zmiana właściwości czcionki UINavigationBar?
Jest to niezwykle proste rozwiązanie w porównaniu do innych, jakie widziałem. Dzięki za pomoc! – TheBlindSpring