myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Kann man Element.Style, StaticResource und einen Style.Trigger miteinander nutzen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Kann man Element.Style, StaticResource und einen Style.Trigger miteinander nutzen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen


echdeneth ist offline

Kann man Element.Style, StaticResource und einen Style.Trigger miteinander nutzen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Moin, ich habe eine Combo und möchte für ein Projekt die Visibility von Datumsfeldern basierend auf der Auswahl des ComboItems einstellen, an sich keine große Sache.
Ich verwende jedoch MaterialDesignThemes von James Willock.

Das ganze sähe so aus:

XML-Code:
                        <DatePicker VerticalContentAlignment="Center"
                                    HorizontalContentAlignment="Right"
                                    materialDesign:HintAssist.Hint="Von:"
                                    FontSize="18"
                                    x:Name="D_BelegVon"
                                    Foreground="Black"
                                    Width="220"
                                    SelectedDateChanged="d_Von_SelectedDateChanged"
                                    Visibility="{Binding IsSelected,ElementName=Combo_Beleg}"
>
                            <DatePicker.Style>
                                <Style Resources="{StaticResource MaterialDesignFloatingHintDatePicker}">
                                    <Setter Property="DatePicker.Visibility"
                                            Value="Hidden"
/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding ElementName=Combo_Datumsauswahl, Path=SelectedItem.Tag}"
                                                     Value="Show"
>
                                            <Setter Property="DatePicker.Visibility" Value="Visible"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </DatePicker.Style>
                        </DatePicker>

Die Stelle mit :

XML-Code:
<Style Resources="{StaticResource MaterialDesignFloatingHintDatePicker}">

funktioniert nicht - es soll
die zugrunde liegende Idee kommuniziert werden.


Ich würde ansonsten selbiges im CodeBehind realisieren, wüsste jedoch ob das mit MaterialDesign und XAMLgeht.

Danke
05.12.2019 10:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
p!lle
myCSharp.de-Mitglied

avatar-3556.jpg


Dabei seit: 22.02.2007
Beiträge: 1.028
Entwicklungsumgebung: Visual Studio (Community) 2017


p!lle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

2 Fehler die ich auf Anhieb sehe:

1. Du darfst die Visibility nicht im DatePicker setzen, wenn du sie über den Style setzen möchtest (Zeile 9)

2. In Zeile 11 muss statt Resources="" ein BasedOn="" genutzt werden.
05.12.2019 10:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

1. Stimmt
2. Da kommt: Kann nur auf \"Style\" mit einem Zieltyp basieren, bei dem es sich um den Basistyp \"IFrameworkInputElement\" handelt. verwirrt


mycsharp.de  Moderationshinweis von Abt (05.12.2019 11:23):

Bitte keine Full Quotes
 
05.12.2019 10:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
p!lle
myCSharp.de-Mitglied

avatar-3556.jpg


Dabei seit: 22.02.2007
Beiträge: 1.028
Entwicklungsumgebung: Visual Studio (Community) 2017


p!lle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zum zweiten Punkt, folgendes funktioniert ohne Probleme:

XML-Code:
<DatePicker>
    <DatePicker.Style>
        <Style TargetType="DatePicker" BasedOn="{StaticResource MD_DatePickerStyle}">
            <Setter Property="Foreground" Value="HotPink" />
        </Style>

    </DatePicker.Style>
</DatePicker>

Könnte sein, dass das fehlende TargetType das Problem war.

Generell kannst du auch ins Output gucken, falls es Probleme mit dem Binding gibt.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von p!lle am 05.12.2019 13:36.

05.12.2019 13:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Schau ich mal
05.12.2019 15:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.01.2020 19:00