Laden...

Wieso macht Visual Studio nicht was ich will

Erstellt von Sam99 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.016 Views
S
Sam99 Themenstarter:in
10 Beiträge seit 2012
vor 10 Jahren
Wieso macht Visual Studio nicht was ich will

[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

S
Sam99 Themenstarter:in
10 Beiträge seit 2012
vor 10 Jahren

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?

C
80 Beiträge seit 2010
vor 10 Jahren

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.

S
Sam99 Themenstarter:in
10 Beiträge seit 2012
vor 10 Jahren

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.