[Artikel] WPF (Windows Presentation Foundation) Einführung - aktuell Teil 3: Beispielanwendung [Artikel] WPF (Windows Presentation Foundation) Einführung - aktuell Teil 3: Beispielanwendung Hallo, ich bin langsam am verzweifeln. In Visual Studio arbeite ich mit mehereren Templates die in Design.xaml gespeichert sind. In App.xaml verweise ich auch auf diese Ressource. In MainWindow.xaml verwendet ein Label dieses Template; sollte es jedenfalls, in Vorschau-Editor von VS wird auch alles richtig angezeigt, aber beim Ausführen der App nicht. Warum???
Im Anhang ist noch ein Bild, damit ihr sehen könnt, was ich meine.
Gruß, Sam99
so langsam verstehe ich das Problem:
Ich habe zwei verschiedene Styles definiert, eins für Label und eins für Textblock.
<Style TargetType="Label">
<Setter Property="FontFamily" Value="Ubuntu Light"/>
<Setter Property="Foreground" Value="{DynamicResource ResourceKey=ForegroundColor}"/>
<Setter Property="FontSize" Value="20"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="FontFamily" Value="Ubuntu Light"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Foreground" Value="{DynamicResource ResourceKey=ForegroundColor}"/>
</Style>
Nun übernehmen die Labels das Style für Textblock. Wie man aber am folgenden Code sieht, hab ich das so nie programmiert.
<Label Content="Artikel" Margin="136,20,126,0" HorizontalAlignment="Center" VerticalAlignment="Top" Width="74" Height="34"/>
Ich hab das nochmal zur Sicherheit überprüft indem ich bei TextBlock die Farbe auf
rot gesetzt habe und siehe da, die Labels wurden alle rot.
Wieso übernehmen die Labels den Style für TextBlock?
Hallo Sam99,
deine Styles unterscheiden sich lediglich in der Schriftgröße. Deshalb ist es auch nicht verwunderlich, dass beide eine rote Schriftfarbe haben, siehe
Value="{DynamicResource ResourceKey=ForegroundColor}"
Das Label übernimmt also nicht den Style des TextBlock.
Folgendes: ich habe im style für textblock
Value="{DynamicResource ResourceKey=ForegroundColor}"
ersetzt durch
Value="Red"
und dies wurde dann auch für die labels übernommen.