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

  • WPF

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

    UPDATE
    Das nächste Tutorial ist Online.

    Diesmal geht es um Templates. Viel Spass damit.

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

    ErfinderDesRades schrieb:

    das ist mir definitiv zuviel.

    Deshalb habe ich die anderen auch kürzer gemacht. Aber es geht eh dahin. Langsam wirds, das erste mit 68 und das zweite mit 23, das wir schon, aller Anfang ist schwer. 8o
    Du brauchst die Grundlagen ja eh nicht!!!

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Ich habe jetzt nicht alles hier gelesen, aber eine kleine Anleitung wie man Sinnvoll eine kleine Datenbank-Anwendung(XML, ACCESS, SQLite) oder ähnliches) kreiert fände ich nützlich, hatte mich vor Jahren mal dran versucht, hatte auf einmal die Daten schon zur DesignTime in der GridView sichtbar gehabt, da war das Designen denn nicht mehr so schön, dauerte vermutlich aufgrund einer halbwegs grossen XML eine gefühlte ewigkeit, bis änderungen sichtbar waren. Danach war ich direkt wieder bei Winforms und dem guten alten Techniken und blieb bis heute dabei(war vllt. ein Fehler). Hätte aber doch Interesse daran, auch mal kleine DB-Anwendungen mit WPF zu machen, habe mir bisher das Tut(grossteil, Templates gugge ich morgen) angeschaut und mal probiert, gefällt mir. Ich weiss nicht viel über WPF, aber du scheinst das Zeug zu haben einigen den Weg in diese Technologie angemessen aufzuzeigen. :thumbup:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „NoIde“ ()

    Hallo @NoIde

    NoIde schrieb:

    aber eine kleine Anleitung wie man Sinnvoll eine kleine Datenbank-Anwendung(XML, ACCESS, SQLite) oder ähnliches) kreiert fände ich nützlich

    Natürlich, das was mir auch wichtig. Ich werde auch versuchen verschiedene Wege aufzuzeigen und die Unterschiede durchgehen. Ich habe auch vor Dinge wie das EntityFramework und der gleichen durch zu gehen.
    Im Grunde ist es aber beim anwenden von MVVM dann ja egal von wo die Daten kommen. und auch wie. Das ist angenehm, da ich den Layer dann auch jederzeit austauschen kann, und meine Applikation läuft weiter.

    NoIde schrieb:

    die Daten schon zur DesignTime in der GridView sichtbar gehabt

    JA, hierfür gibt es möglichkeiten um zwischen dem DesignTime und der RunTime zu unterscheiden, damit sowas im Designer eben gar nicht erst auftaucht. @ErfinderDesRades hat das auch in einem Tut drinnen.

    NoIde schrieb:

    Hätte aber doch Interesse daran, auch mal kleine DB-Anwendungen mit WPF zu machen

    Werde ich auch durchgehen, solltest du früher soweit sein (und ich bin in der Tutorialreihe noch nicht soweit) dann Helfe ich natürlich hier im Forum gerne wenn du einen Thread aufmachst. Gar kein Thema.

    NoIde schrieb:

    aber du scheinst das Zeug zu haben einigen den Weg in diese Technologie angemessen aufzuzeigen.

    Danke für die Blumen, laufe ja schon rot an. Ich werde versuchen das Niveau zu halten und immer beides anzubieten. Beitrag mit Text, Code und Bildern, und Videos. Das hat die Umfrage ja auch so ergeben.
    Danke dir, und danke fürs ansehen.

    PS: Eigendlich niemand Fragen? Bei Styles und/Uoder Templates habe ich mir Fragen erwartet. ?( Oder ist WPF dann doch gar nicht so kompliziert wie es Anfangs scheint?

    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.

    Nofear23m schrieb:

    Oder ist WPF dann doch gar nicht so kompliziert wie es Anfangs scheint?


    Meine ersten Versuche(damals) fand ich abschreckend, daher glaube ich, viele interresieren sich weniger dafür, scheint in Winforms einfacher zu sein. Von Zeit zu Zeit wird sicher der eine oder andere Fragen dazu haben. Mit meinem Wissensstand bezüglich WPF war das Tut bisher eine schöne Auffrischung(habe damals schon einiges gelesen, die Fähigkeiten reichten zu dem Zeitpunkt noch nicht aus[Hobbycoder]), freue mich schon auf mehr.

    NoIde schrieb:

    freue mich schon auf mehr.

    Das ist schön, und da kommt SEHR viel wie man am Inhaltsverzeichnis ja schon vermuten kann.

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

    vielleicht kannst du ja ein WPF Tutorial machen über Localization und Globalization.
    Bzw verschiedene Möglichkeiten aufzeigen wie man Anwendungen dynamisch gestaltet mit verschieden Sprachen (und sich dabei nicht GUI zusammenhaut) und diese zur Laufzeit ändern kann (ode rauch nicht, je nach Methode).

    Es gibt dazu zwar schon ein paar Tutorials, aber bisher habe ich kein richtig Gutes gefunden welches das für und wieder mehrerer Methoden mal beleuchtet.
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo @Mono

    Ja, die Lokalisierung und die Globalisierung sind sind so Themen, danke für den Hinweis, ich habe im Tutorial-Thread gerade das Inhaltsverzeichnis aktualisiert. Ich hoffe zufriedenstellend.
    Da ich gerade an einer Anwendung Arbeite welche Mehrsprachig ist/wird habe ich hier tatsächlich sogar Erfahrung. In der WPF gibt es hier mehrere Wege ans Ziel, und ich selbst habe viele ausprobiert.
    Der beste für mich war die Einbidung von WPFLocalizationExtension.
    Nicht nur weil flexibel, sondern auch sehr schnell. Auch zur Laufzeit kann jederzeit die Sprache geändert werden.

    Auch kann nicht nur Text sondern auch Bilder und Resourcen können Lokalisiert werden.

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

    Der nächste Part ist Online.
    2.1.1.2 #3 - Trigger. Ziemlich cooles Thema wie ich finde.

    Viel spass und schöne Grüße
    Sascha

    Achja, vergesst nicht mir ein Hilfreich da zu lassen und/oder ein Like auf Youtube. Und wenn Ihr am laufenden bleiben wollt abboniert einfach meinen Kanal. :thumbsup:
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Hallo und guten Abend

    Wenn ich die Vorlage eines Control einsehen möchte, so geht das doch über die Rechte Maustaste >> Vorlage bearbeiten >> Kopie erstellen, so im Film.
    Leider hab ich diese Möglichkeit gar nicht. Gibt es eventuell noch eine anderweitige Möglichkeit z.b. über das Menu oder so?
    Oder gibts die nur in den neueren VS-Versionen?

    Danke für die Antwort.

    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()

    Hallo

    Komisch, habe es gerade nochmal mit der Community-Edition probiert, auch da klappte es. Was ist das für ein Control?

    Es geht auch anders, z.b. über die Dokumentgliederung: Ansicht -> Weitere Fenster -> Dokumentgliederung
    Dort rechtklick auf das Control -> Stil bearbeiten -> Kopie bearbeiten

    Wäre aber interessant warum es nicht über den Designer klappt. Du kannst auch versuchen das Control über den CodeEditor zu markieren (Cursor reinsetzen) und dann im Designer rechtsklick.

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

    Ich wollte mir nur mal anschauen wie so ein Button aufgebaut ist.

    Wahrscheinlich liegts daran, dass ich hier mit einer Dinosaurier-Version arbeite: VS 2010 Express. :D
    Leider geht das auch nicht über die Dokumetenansicht, da ich dort gar kein Kontextmenu habe. :D

    Bestimmt finde ich im Internet mit ein wenig Suchen ein paar Infos dazu.

    Danke für die Hilfe.

    Freundliche Grüsse

    exc-jdbi
    Bilder
    • pic1.jpg

      30,13 kB, 691×432, 37 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()

    Hallo

    Tja, das musst du schon dazu sagen, ich gehe schon davon aus das man mit der aktuellen Version arbeitet, zudem man mehrere Versionen sogar parallel laufen lassen kann und auch die aktuellen kostenlos sind.

    In XAML hat sich viel getan, zu VS 2010er Zeiten konnte VS dies noch nicht, damals musste man Blend hierfür hernehmen welches damals im Gegensatz zu heute noch nicht kostenlos war. Heute ist es auf wunsch bei der 2017er sogar gleich dabei obwohl es VS auch kann.

    Geht also was ich mich Erinnern kann NICHT. Wenn du mit WPF und XAML Arbeitest empfehle ich dir echt die 2017er oder zumindest die 2015er, wobei gerade die 2017er sehr viele neue Funktionen bereithält.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Also in den Eigenschaften eines Controls, suche dort noch Template, dort ist ein kleines Symbol, draufklicken und dann Werrt in Ressource extrahieren, danach hast du es in den Ressourcen, wobei du wählen kannst in welchen Window.Ressource(welches Window) oder auch in Application.Ressource.
    Bilder
    • Unbenannt.jpg

      194,86 kB, 1.366×735, 42 mal angesehen
    @NoIde sehr interessant! Bekommst du da auch alle Styles in VisualStyles in die Resourcen? Dann wäre das ja die Lösung.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    So schauts dann in den Ressources für den Button aus:

    XML-Quellcode

    1. <Window.Resources>
    2. <ControlTemplate x:Key="Template1" TargetType="ButtonBase">
    3. <my:ButtonChrome Background="{TemplateBinding Control.Background}"
    4. BorderBrush="{TemplateBinding Control.BorderBrush}"
    5. Name="Chrome"
    6. RenderDefaulted="{TemplateBinding Button.IsDefaulted}"
    7. RenderMouseOver="{TemplateBinding UIElement.IsMouseOver}"
    8. RenderPressed="{TemplateBinding ButtonBase.IsPressed}"
    9. SnapsToDevicePixels="True">
    10. <ContentPresenter Content="{TemplateBinding ContentControl.Content}"
    11. ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}"
    12. ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
    13. HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
    14. Margin="{TemplateBinding Control.Padding}"
    15. RecognizesAccessKey="True"
    16. SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
    17. VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
    18. </my:ButtonChrome>
    19. <ControlTemplate.Triggers>
    20. <Trigger Property="UIElement.IsKeyboardFocused" Value="True">
    21. <Setter Property="my:ButtonChrome.RenderDefaulted" TargetName="Chrome" Value="True" />
    22. </Trigger>
    23. <Trigger Property="ToggleButton.IsChecked" Value="True">
    24. <Setter Property="my:ButtonChrome.RenderPressed" TargetName="Chrome" Value="True" />
    25. </Trigger>
    26. <Trigger Property="UIElement.IsEnabled" Value="False">
    27. <Setter Property="Control.Foreground" Value="#FFADADAD" />
    28. </Trigger>
    29. </ControlTemplate.Triggers>
    30. </ControlTemplate>
    31. </Window.Resources>

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

    Danke @NoIde, das sieht ja gar nicht so schlecht aus.

    Eine neuere Version würde unter Win7 vermutlich wie folgt generieren, aber ausser den Styles ist ja eh alles da. Danke für die Info.
    Spoiler anzeigen

    XML-Quellcode

    1. <Style TargetType="Button">
    2. <Setter Property="SnapsToDevicePixels" Value="true"/>
    3. <Setter Property="OverridesDefaultStyle" Value="true"/>
    4. <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
    5. <Setter Property="MinHeight" Value="23"/>
    6. <Setter Property="MinWidth" Value="75"/>
    7. <Setter Property="Template">
    8. <Setter.Value>
    9. <ControlTemplate TargetType="Button">
    10. <Border
    11. x:Name="Border"
    12. CornerRadius="2"
    13. BorderThickness="1"
    14. Background="{StaticResource NormalBrush}"
    15. BorderBrush="{StaticResource NormalBorderBrush}">
    16. <ContentPresenter
    17. Margin="2"
    18. HorizontalAlignment="Center"
    19. VerticalAlignment="Center"
    20. RecognizesAccessKey="True"/>
    21. </Border>
    22. <ControlTemplate.Triggers>
    23. <Trigger Property="IsKeyboardFocused" Value="true">
    24. <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
    25. </Trigger>
    26. <Trigger Property="IsDefaulted" Value="true">
    27. <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
    28. </Trigger>
    29. <Trigger Property="IsMouseOver" Value="true">
    30. <Setter TargetName="Border" Property="Background" Value="{StaticResource DarkBrush}" />
    31. </Trigger>
    32. <Trigger Property="IsPressed" Value="true">
    33. <Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
    34. <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" />
    35. </Trigger>
    36. <Trigger Property="IsEnabled" Value="false">
    37. <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
    38. <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
    39. <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
    40. </Trigger>
    41. </ControlTemplate.Triggers>
    42. </ControlTemplate>
    43. </Setter.Value>
    44. </Setter>
    45. </Style>


    Trotzdem würde ich auf zumindest helbwegs aktuelle Versionen einer IDE setzen. Alleine schon wegen NuGet, aber das muss jeder wissen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Hallo zusammen,
    wollte eigentlich ne ganz andere Frage stellen. Aber beim lesen des Themas "Control Vorlagen " ist mir auch eine Frage eingefallen.
    Wenn ich also: Rechte Maustaste >> Vorlage bearbeiten >> Kopie erstellen öffnet sich dieses Fenster wo ich zwischen "Window:<No name>" und "Button:<No name>" wählen kann. Ergibt was ganz anderes...

    Kann mir jemand kurz den Unterschied erklären?
    Danke
    Hallo @Jeiss

    Wie im Dialog beschrieben "Define in". Der Unterschied ist folgender.

    Bei Define in Window wird dir der Style von VS in den Window Resourcen angelegt.
    Bei Define in Button wird dir der Style von VS in den Button Resourcen angelegt.

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