Hallo an alle,
Folgenden Code habe ich in der App.xaml und dieser wird nicht in der Anwendung übernommen. Wenn ich aber die Windows im Designer öffne, sehe ich das die Werte übernommen wurden.
Wie kann das sein das es im Designer funktioniert, aber nicht in der Anwendung?
<Style TargetType="{x:Type Window}">
<Setter Property="FontSize" Value="20"></Setter>
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"></Setter>
</Style>
"Window" Styles werden nicht automatisch übernommen, das der Designer es zeigt ist eher der Fehler.
Hallo CSL,
Vielen Dank für die Info. Wie kann ich das dann umsetzen? Ich würde gerne für die komplette Anwendung den FontSize ändern ohne das ich jedes Control usw. angeben muss. Hast du mir da einen Tipp?
Ein Window style hast du ja, im Prinzip reicht es ja wenn du in jedem Window den Style explizit setzt.
Genau das wollte ich vermeiden. Dachte das man irgendwo global Styles anwenden kann.
Versuch mal dieses
<Style TargetType="{x:Type FrameworkElement}">
<Setter Property="TextBlock.FontSize" Value="20" />
</Style>
Aber ich glaube dann gilt das nur für die Controls die keinen eigenen Style haben, du müsstest dann bei allen Styles ein BasedOn definieren.
Ich glaub den Key in allen Window setzen ist die wenigste arbeit.
Hallo,
das Problem scheint zu sein dass bei der Angabe
<Style TargetType="{x:Type Window}">
der Stil für die Klasse "Window" gilt, aber nicht vererbt wird. Warum weiß ich nicht.
Neben dem Vorschlag von CSL könnte auch ein eigenes Basisfenster definiert werden und dort im Ctor den Stil zu setzen. Alle anderen Fenster erben von diesen.
Mir gefällt aber der Vorschlag von CSL dennoch besser und mMn auch weniger aufwändiger und fehleranfällig.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Die beiden Ansätze bringen leider nichts. Ich kann keine Veränderung feststellen. Gehe ich Recht in der Annahme das ich nicht global eine Schriftgröße für alle Controls festlegen kann?
Dachte das im WPF mit Styles nun alles besser ist als bei Windows Forms?
Hallo,
global eine Schriftgröße für alle Controls festlegen kann?
Ich habs nicht probiert (und kanns gerade nicht probieren), aber was ist wenn für TextElement
die FontSize gesetzt wird?
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
das Problem scheint zu sein dass bei der Angabe
<Style TargetType="{x:Type Window}">
der Stil für die Klasse "Window" gilt, aber nicht vererbt wird. Warum weiß ich nicht.
Hallo,
die Vererbung in Styles funktioniert nicht ohne weiteres, da durch die "TargetType" Eigenschaft implizit der "x:Key" auf "Window" gesetzt wird. Die Steuerelemente suchen beim Initialisieren automatisch nach einem Standardstyle mit ihrem Typename z.B. "MyWindow". Das "Window".Equals("MyWindow") false ergibt sollte klar sein.
Um das Problem zu beheben kann man z.B. für jedes Window ein eigenes Style definieren mit "BasedOn" oder eben das Standardstyle direkt zuweisen.
Da wir in unserer Anwendung sowieso alle verwendeten Controls umstylen mussten, haben wir die Standardschriftgröße, Farbverläufe etc. einfach in ein Xaml-RessourceDictionary ausgelagert und in allen Styles/Templates darauf verwiesen.
mfg marste
Hallo marste,
Vielen Dank für deine Info. Das funktioniert das ganze auch gut, nur muss ich hier darauf achten das ich alle Controls entsprechend beachten. Schade das es kein globale Änderung für FontSize gibt 😦