Support, Anregungen, Wünsche zur Tutorialreihe <WPF lernen/>

  • WPF

Es gibt 317 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    SO, das "Spezialkapitel" ist jetzt auch in das Inhaltsverzeichnis eingefügt.

    Gibts hier: Tutorialreihe <WPF lernen/>

    @Joshi
    Ja klar editieren und hinzufügen hatte ich eh vor, persistieren lass ich erstmal weg. Danke für den Input.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo @eichseinet

    Ja, das ist mir leider passiert, hatte ich falsch aufgenommen. Im Textbeitrag ist aber im Grunde genau das selbe zu lesen. Ist leider so.
    Werde ich in Zukunft besser aufpassen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Leute

    Ein neues Kapitel ist Online.

    3.2 Editieren und hinzufügen von Einträgen

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ich habe mal ein Verständnisfrage zu dem Model des Telefonbuches. Und zwar geht es hier genauer um den 3. Konstruktor.

    VB.NET-Quellcode

    1. Public Sub New(salutation As EnuSalutation, firstName As String, lastName As String, image As String, birthday As Date?, contacts As List(Of Contact))
    2. Me.Salutation = salutation
    3. Me.FirstName = firstName : Me.LastName = lastName
    4. Me.Image = image : Me.Birthday = birthday
    5. ContactItems = New List(Of Contact)
    6. End Sub


    Hier wird mir contacts As List(Of Contact) untergkringelt mit dem Zusatz das es ein nicht verwendeter Parameter ist. Welchen Sinn hat dieser Parameter, ich verstehe es nicht. =(
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    Da hast du, bzw. VisualStudio recht. Ist/war ein Fehler meinerseits.

    Hie gehört ein ContactItems = contacts hin.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sascha

    Erst mal gratulation zu Deinen Videos. Eine riesenarbeit, und wirklich gelungen.
    Ich habe mich nun endlich durchgerungen, mich mit WPF auseinanderzusetzen. Habe erst die ersten vier Videos gesehen und bin erstaunt, was mit diesem kleinen Basiswissen und etwas googeln grafikmässig schon alles möglich ist.

    Nun zu meiner Frage: Wenn ich im App.xaml Styles definiere und danach im MainWindow.xaml per Trigger ein Property verändere, gehen mir die im App.xaml definierten Propertys verloren, und ich muss sie trozdem wieder abgeben.
    Dafür gibt es sicher eine einfache Lösung.

    App.xaml

    XML-Quellcode

    1. [code]<Application.Resources>
    2. <Style TargetType="{x:Type Button}">
    3. <Setter Property="Width" Value="150"/>
    4. <Setter Property="Height" Value="30"/>
    5. <Setter Property="Margin" Value="10,20,15,15"/>
    6. <Setter Property="FontFamily" Value="Calibri"/>
    7. <Setter Property="FontSize" Value="16"/>
    8. <Setter Property="Opacity" Value="0.7"/>
    9. <Setter Property="Background" Value="Orange"/>
    10. </Style>
    11. </Application.Resources>[/code]


    MainWindow.xaml
    So geht es nicht...

    XML-Quellcode

    1. [code] <Button x:Name="b1" Content="Fett MouseOver">
    2. <Button.Style>
    3. <Style TargetType="{x:Type Button}">
    4. <Style.Triggers>
    5. <Trigger Property="IsMouseOver" Value="True">
    6. <Setter Property="FontWeight" Value="Bold"/>
    7. </Trigger>
    8. </Style.Triggers>
    9. </Style>
    10. </Button.Style>
    11. </Button>[/code]


    so funktionierts, kann jedoch die vorzüge desin App.xaml definierten Styles nicht nutzen

    XML-Quellcode

    1. [code] <Button x:Name="b1" Content="Fett MouseOver" Width="150" Height="30" Margin="10,20,15,15" FontFamily="Calibri" FontSize="16" Opacity="0.7" Background="Orange">
    2. <Button.Style>
    3. <Style TargetType="{x:Type Button}">
    4. <Style.Triggers>
    5. <Trigger Property="IsMouseOver" Value="True">
    6. <Setter Property="FontWeight" Value="Bold"/>
    7. </Trigger>
    8. </Style.Triggers>
    9. </Style>
    10. </Button.Style>
    11. </Button>[/code]


    Besten Dank für Deine / Eure Hilfe
    Hallo @Murmeli81

    Murmeli81 schrieb:

    Erst mal gratulation zu Deinen Videos.

    Danke für das kompliment.

    Murmeli81 schrieb:

    Dafür gibt es sicher eine einfache Lösung.

    Ja, da hast du recht, die gibt es. Das Stichwort hier ist "BasedOn".

    z.b.:

    XML-Quellcode

    1. <Button x:Name="b1" Content="Fett MouseOver" Width="150" Height="30" Margin="10,20,15,15" FontFamily="Calibri" FontSize="16" Opacity="0.7" Background="Orange">
    2. <Button.Style>
    3. <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
    4. <Style.Triggers>
    5. <Trigger Property="IsMouseOver" Value="True">
    6. <Setter Property="FontWeight" Value="Bold"/>
    7. </Trigger>
    8. </Style.Triggers>
    9. </Style>
    10. </Button.Style>
    11. </Button>


    Ich hoffe das hilft dir weiter.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo Sascha

    Danke für Deine schnelle Antwort. Genau das was ich suchte.
    Was hältst Du von meinem ersten kleinen WPF-Programm?

    Gruss
    Murmeli81

    *Anhang gelöscht da bin Ordner mit exe vorhanden* ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Hallo

    Leider musste ich deinen Anhang löschen da die Assembly vorhanden war.
    Am besten gehst du vor dem Upload in VisualStudio auf "Bereinigen" oder löscht manuell den bin Ordner da es im Forum nicht erlaubt ist kompilierte Assemblys hochzuladen. Zumindest nicht in diesem Bereich.

    Wenn es dir darum geht das ich oder vieleicht auch andere mal "drüberschaun" und du Feedback bekommst mach das am besten überhaupt hier.
    Falls es noch keine "fertige" App ist dann am besten in einem neuen Thread im WPF Bereich damit wir diesen Thread sauberhalten.
    Ich schau dann gerne mal drüber und gebe Feedback. Schreib vieleicht auch dazu falls es dir um Feedback über spezielle bereiche oder spezielle Dinge geht oder um das Gesamtpaket.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo!

    Ich bin neu auf diesem Forum und beschäftige mich seid ca. 1 Monat, angetrieben durch einen sehr guten Freund( @florian03 ^^ ), mit der WPF.
    Ich muss mich erstmal für das super Tutorial von dir bedanken - Sascha - , dadurch lerne ich sehr viel. Großes Lob von mir!


    Ich habe nun schon das Kapitel Styles, Templates und Trigger durchgearbeitet und habe dazu eine Frage.

    Wie organisiere ich Styles am besten.
    Damit meine ich,dass wenn ich ein RessourceDictonary angelegt habe, wo Styles für Buttons, Textboxen, etc. drinnen sind, wo speichere ich dieses dann.
    Und wie "verknüpfe" ich dann die einzelne Dateien mit dieser Ressource Datei?

    Ach ja, gibt es auch eine Möglichkeit, diese Datei während der Verwendung der Anwendung "auszutauschen", wenn ein Benutzer z.B: einen Dunklen Hintergrund haben will?

    LG
    Arhant aka LaggyNacho
    Hallo @LaggyNacho und erstmal ein herzliches Willkommen im Forum

    Tja, für diese Frage gibt es nicht "die eine" Antwort. Ich selbst mache es gerne so das ich erstmal ein ResourceDictionary anlegen wo die ganzen "Default-Styles" reinkommen. (Ich mache für solche Dinge immer einen Unterordner in der Solution wie z.b. "Resources"). Hier kommen alle Styles rein wie der Default-Style für einen Button oder eine TextBox, aber genauso für ein Panel oder ein Window. Da werden Werte wie Margin, Background usw. definiert.

    Für spezielle Styles welche wieder die Default-Styles überschreiben, z.b. weil ich einen Button nun wieder anders aussehen lassen möchte wie alle anderen packe ich fast immer in ein eigenes ResourceDictionary und benamse dieses entsprechend. Z.b. mit RedAlertButtonDictionary. Und das Style dann RedAlertButtonStyle.

    Zum einbinden der jeweiligen Resource gibt es genauso mehrere Wege.
    Wenn du ein Style wie z.b. deine ganzen "DefaultStyles" innerhalb der ganzen Anwendung benötigst dann bindest du diese am besten in der App.xaml ein.

    XML-Quellcode

    1. <Application.Resources>
    2. <ResourceDictionary>
    3. <ResourceDictionary.MergedDictionaries>
    4. <ResourceDictionary Source="DefaultStyles.xaml" />
    5. </ResourceDictionary.MergedDictionaries>
    6. </ResourceDictionary>
    7. </Application.Resources>


    Du kannst natürlich innerhalb eines ResourceDictionary auf diese weise auch weitere Resourcenfiles einbinden und diese werden dann mitgeladen.

    Benötigst du innerhalb eines Window z.b. ein weiteres ResourceDictionary wie das RedAlertButtonDirctionary dann machst du das wie in der App.xaml nur eben innerhalb des Window, des UserControls oder wo auch immer.

    LaggyNacho schrieb:

    Ach ja, gibt es auch eine Möglichkeit, diese Datei während der Verwendung der Anwendung "auszutauschen", wenn ein Benutzer z.B: einen Dunklen Hintergrund haben will?


    Ja, die möglichkeit gibt es auch. Das nennt sich Theming.
    Schau diesbezüglich mal hier vorbei. Ich würde aber sagen vorher sollte der rest mal "sitzen".

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo nochmal!

    Nofear23m schrieb:

    Wenn du ein Style wie z.b. deine ganzen "DefaultStyles" innerhalb der ganzen Anwendung benötigst dann bindest du diese am besten in der App.xaml ein.

    Vielen Dank, genau danach habe ich gesucht, da sind die Styles bei allen Dateien verfügbar.

    Nofear23m schrieb:

    Ja, die möglichkeit gibt es auch. Das nennt sich Theming.
    Schau diesbezüglich mal hier vorbei. Ich würde aber sagen vorher sollte der rest mal "sitzen".

    Das sieht noch sehr kompliziert aus, da kümmere ich mich erstmal um das andere.

    Vielen Dank für die super schnelle Antwort!

    LG
    Arhant aka LaggyNacho
    Hallo Sascha,

    vielen Dank fuer die muehe und die Zeit die du aufwendest fuer dieses Tutorial. Es ist fuer mich als Anfaenger sehr leicht und gut zu verstehen.
    Werden demnaechst wieder Videos kommen?
    Ich weiss nicht ob das schon mal behandelt wurde aber kannst du mir bitte sagen welche Bedeutung "$" in folgendem kontext hat.

    VB.NET-Quellcode

    1. Return $"Marke: {Marke }, Modell: {Modell } Leistung: {PS }"


    Lg

    Andy
    Hallo @andydan

    andydan schrieb:

    Werden demnaechst wieder Videos kommen?

    Erstmal danke für die Blumen und dein interesse an der Tutorialreihe.

    Natürlich tut es mir leid das ich in letzter Zeit nichts gemacht habe, ich weis das einige Warten und es euch in der Fingern juckt weiter zu machen. Ich hatte in den letzten Monaten weniger Zeit und die verbleibende Zeit ging in andere laufende Projekte. Ich bin mit meinem Po einfach auf zu vielen Hochzeiten. hinzu kommt das ich die letzten Monate wenig Bock aufs Programmieren hatte was sich aber zum Glück wieder bessert. Die Phasen hat man einfach.

    Ich werde aber sicher die nächsten Wochen wieder weitermachen. Das Projekt ist auf keinen Fall gestorben.

    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##