Jump to content

Finux

Mitglieder
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

  1. @KeeperOfCoffee Ich weiß deine Mühe sehr zu schätzen, habe allerdings nur noch bis Freitag morgen Zeit (habe dieses Projekt als Klausurgegenstand gewählt). So richtig verstehe ich leider auch nicht was nun MVVM genau sein soll, bzw wo hier Unterschiede liegen (shame on me, bin ein echt krass langsamer Lerntyp, und ich stehe quasi noch in the very beginning..) - Was ist das INotifyPropertyChanged Interface? - Was ist ein Datacontext? - Was ist eine ObservableCollection? Geht das in die Richtung MVVM? (sry für die blöden Fragen, ich checks einfach nicht)
  2. Erstmal fetten Dank an alle Antwortenden! Hab gar nicht mit so viel Help/Feedback gerechnet! Top! Gestern bin ich nach fürchterlich langer Zeit erst auf den richtigen "Google"-Pfad der "Erlösung" gekommen. Denn mir war einfach nicht klar, wie ich mit nem ClickEvent ein 2. Fenster provozieren kann (ne MessageBox bringt mir ja nix). Ich hab bisher ein bissl was zusammengeschustert, ich zeigs euch einfach mal (soll auf jeden Fall ein WPF-Projekt bleiben!) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Stay_Alive { /// <summary> /// Interaktionslogik für MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void WelcomeWindow_B1_Ja_Click(object sender, RoutedEventArgs e) { name name = new name(); name.Show(); this.Close(); } private void WelcomeWindow_B2_Nein_Click(object sender, RoutedEventArgs e) { this.Close(); } } } <Application x:Class="Stay_Alive.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Stay_Alive" StartupUri="MainWindow.xaml"> <Application.Resources> <LinearGradientBrush x:Key="gradientBackground" EndPoint="1,0.5" StartPoint="0,0.5"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FF006A00" Offset="1"/> </LinearGradientBrush> <Style TargetType="Button"> <Setter Property="Height" Value="25"/> <Setter Property="Width" Value="100"/> <Setter Property="Background" Value="Black"/> <Setter Property="Foreground" Value="#FF0AD300"/> <Setter Property="BorderBrush" Value="#FF0AD300"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Foreground" Value="Black"/> </Trigger> </Style.Triggers> </Style> <Style x:Name="Name_Frage" TargetType="{x:Type TextBox}"> <Setter Property="HorizontalAlignment" Value="Left"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="FontSize" Value="12"/> <Setter Property="Background" Value="Black"/> </Style> </Application.Resources> </Application> <Window x:Class="Stay_Alive.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Stay_Alive" mc:Ignorable="d" Title="Stay Alive!" Icon="K:\+++BEWERBUNG PRAKTIKUM+++\+++ eigene Programme +++\Stay_Alive\Stay_Alive\Symbol1.ico" Height="400" Width="798" ResizeMode="CanMinimize"> <Window.Effect> <DropShadowEffect/> </Window.Effect> <StackPanel Background="{StaticResource gradientBackground}"> <TextBlock Name="WelcomeWindow" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="53,50,52,50" TextWrapping="Wrap" FontSize="18" Foreground="#FF00FF07"> <TextBlock.Effect> <DropShadowEffect/> </TextBlock.Effect><Run Text="Stay Alive ist eine kleine Story, in der es ums Überleben geht. Sie befindet sich noch im Ausbau, du kannst sie aber vorab testen."/></TextBlock> <TextBlock x:Name="WelcomeWindow_Frage" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="52,0,0,0" TextWrapping="Wrap" FontSize="18" IsEnabled="False"> <TextBlock.Effect> <DropShadowEffect/> </TextBlock.Effect><Run Text="Möchtest du Teil dieses Abenteuers werden?" Foreground="#FF00FF07"/></TextBlock> <Grid Margin="10,20,30,20"> <Grid.Effect> <DropShadowEffect/> </Grid.Effect> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Button Grid.Column="0" Grid.Row="1" Name="WelcomeWindow_B1_Ja" Margin="0,0,0,0" Click="WelcomeWindow_B1_Ja_Click">Ja</Button> <Button Grid.Column="1" Grid.Row="1" Name="WelcomeWindow_B2_Nein" Margin="22" Click="WelcomeWindow_B2_Nein_Click">Nein</Button> <Image Source="K:\+++BEWERBUNG PRAKTIKUM+++\+++ eigene Programme +++\Stay_Alive\Stay_Alive\Selfmade_Icon.ico" VerticalAlignment="Top" Grid.Column="3" Grid.Row="1" Name="WelcomeWindow_B3_Nein" Margin="52" Height="45" Width="100"></Image> <TextBox Grid.Column="3" Height="20" Width="65" Margin="112,70,0,45" Text="Version 1.0" Foreground="#FF00FF05" BorderBrush="Black" Background="Black" IsEnabled="False"/> </Grid> </StackPanel> </Window> <Window x:Class="Stay_Alive.name" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Stay_Alive" mc:Ignorable="d" Title="Stay Alive!" Icon="K:\+++BEWERBUNG PRAKTIKUM+++\+++ eigene Programme +++\Stay_Alive\Stay_Alive\Symbol1.ico" Height="450" Width="798" ResizeMode="CanMinimize"> <StackPanel Background="{StaticResource gradientBackground}"> <TextBlock Name="Name_Äxx" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="53,50,52,50" TextWrapping="Wrap" FontSize="18" Foreground="#FF00FF07"> <TextBlock.Effect> <DropShadowEffect/> </TextBlock.Effect><Run Text="Hallo Fremder. Mein Name ist Äxx.Wenn du dieses Programm gefunden hast bedeutet das, dass das Virus ausgebrochen ist und zumindest DU überlebt hast. Wenn du bereit bist dir mein Gequatsche anzuhören und wirklich überleben willst, dann verrate mir vorerst deinen Namen:"/></TextBlock> <TextBox x:Name="Name_Frage" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="53,0,0,0" TextWrapping="Wrap" FontSize="18" Text="" Foreground="#FF00FF07" Width="270"> <TextBox.Effect> <DropShadowEffect/> </TextBox.Effect> </TextBox> <Grid Margin="0,20" RenderTransformOrigin="0.499,0.926" Height="179"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Image Source="K:\+++BEWERBUNG PRAKTIKUM+++\+++ eigene Programme +++\Stay_Alive\Stay_Alive\Selfmade_Icon.ico" VerticalAlignment="Top" Grid.Column="3" x:Name="WelcomeWindow_B3_Nein" Margin="38,78,60,0" Height="45" Width="100"/> <TextBox Grid.Column="3" Height="20" Width="65" Margin="106,102,0,57" Text="Version 1.0" Foreground="#FF00FF05" BorderBrush="Black" Background="Black" IsEnabled="False"/> </Grid> </StackPanel> </Window> Sieht dann bisher so aus: Hier der Konsolencode, den ich einfach nur funktional in WPF visualisieren möchte : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StayAlive { class Program { static void Main(string[] args) { string name = ""; Begruessung(ref name); KraftBeweglichkeitAusdauer(ref name); Temperaturabfrage(); Console.WriteLine(" :] "); Console.ReadKey(); } public static void Begruessung(ref string name) { Console.WriteLine("Hallo Fremder."); Console.WriteLine("Mein Name ist Äxx."); Console.WriteLine("Wenn du dieses Programm gefunden hast heißt das, dass das Virus ausgebrochen ist und zumindest DU überlebt hast."); Console.WriteLine("Wenn du bereit bist, dir mein Gequatsche anzuhören und wirklich überleben willst, dann verrate mir vorerst deinen Namen: "); name = Console.ReadLine(); Console.WriteLine("Ich muss prüfen, ob du nicht in der Mitarbeiterdatenbank der 'W-H-A' auftauchst und mich nun ausspionieren willst.."); Console.ReadKey(); Console.WriteLine(".. progress 38%"); Console.Write(".. progress 58%"); Console.WriteLine(".. progress 100%"); Console.WriteLine(); Console.WriteLine("No match found."); Console.WriteLine(); Console.Write("Okay, {0}, Keine ID zu diesem Namen vorhanden.", name); Console.WriteLine(); Console.WriteLine("Vorerst muss das reichen."); Console.WriteLine("Der Weg den wir beide bestreiten wird nicht leicht. Überall lauern die Auswirkungen des Virus. Tote, Lebendige,"); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine(" und die... dazwischen...... "); Console.WriteLine(); Console.WriteLine(); Console.ResetColor(); Console.Write("Fangen wir lieber an uns vorzubereiten. "); Console.WriteLine(); } public static string KraftBeweglichkeitAusdauer(ref string name) { Console.WriteLine("Um dir wirklich gute Tipps geben zu können, muss ich wissen, wie es um deine sportlichen Körperlichkeiten steht. Zunächst brauche ich dein Gewicht: "); string gewicht = Console.ReadLine(); int geparsedGewicht = Int32.Parse(gewicht); Console.WriteLine(); if (geparsedGewicht >= 80) { Console.WriteLine("Du bist sicherlich jemand mit viel Kraft. "); } if (geparsedGewicht < 80 && geparsedGewicht > 60) { Console.WriteLine("Ein Schwächling bist du sicher nicht. Aber wir sollten evtl. andere Wege offenhalten, wenn deine Stärken weniger in der Körperkraft liegen."); } if (geparsedGewicht <= 60 && geparsedGewicht >= 50) { Console.WriteLine("Um eine gesunde Balance zu den Attributen Kraft, Beweglichkeit und Ausdauer zu bekommen, solltest du auf jeden Fall -falls es die Situation zulässt- täglich deine Körperkraft trainieren. "); } if (geparsedGewicht < 50) { Console.WriteLine("Was? Hast du dich vielleicht vertippt? (y/n)"); string abfrageVertippt = Console.ReadLine(); if (abfrageVertippt == "y" || abfrageVertippt == "Y") { Console.WriteLine(); Console.WriteLine("Zum Glück. Das wäre hart geworden, und die Chancen deines Überlebens hätten bei unter {0} % gelegen.", geparsedGewicht); Console.WriteLine("Um ehrlich zu sein, in diesem Fall hätte ich dir nahegelegt Suizid zu begehen. Alles andere wäre Quälerei gewesen!"); } else { Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Oha. "); Console.WriteLine("....Schnuckelchen, in der Vitrine im Obergeschoss steht hochprozentiger Alkohol. Eine geladene Pistole wirst du im Wandschrank finden. Trinke dir Mut an, und dann lösche dich selbst aus, denn du hast keine Chance zu überleben. Machs gut {0}.... ", name); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Deine Erbanlagen und das, was du aus deiner Gesundheit gemacht hast in deinem Leben, bewegt sich im unterirdischen Bereich. Letztlich bist du an einer Alkoholvergiftung gestorben, denn dein kleiner, dürrer Körper hat der alkoholischen Belastung nicht mehr stand gehalten. Mögliche Überlebende hatten nie die Chance die vorher erwähnte Pistole zu finden. Auch sie haben es nicht geschafft. Weil du so klein und dünn warst. "); return "ENDE"; } } Console.WriteLine(); Console.Write("Aber wie steht es um deine Beweglichkeit? Würdest du sagen, dass du recht gelenkig bist? (y/n)"); string abfrageBeweglichkeit = Console.ReadLine(); Console.WriteLine(); if (abfrageBeweglichkeit == "y" || abfrageBeweglichkeit == "Y") { Console.WriteLine(); Console.WriteLine("Das freut mich sehr! Mit dieser Information sind deine Überlebenschancen nach meinen Berechnungen gerade um 14 % gestiegen! "); } if (abfrageBeweglichkeit == "n" || abfrageBeweglichkeit == "N") { Console.WriteLine(); Console.WriteLine("Das macht nichts. Aber wir sollten aufpassen, dass wir uns nicht in Situationen begeben, die gymnastisch eine hohe Beweglichkeit erfordern könnte.."); } Console.Write("Nun zum wichtigsten aller Eigenschaften. Ausdauer. Wie schätzt du dich selbst ein, bist du ein Raucher mit chronischer Unlust zur Bewegung? (y/n)"); string abfrageAusdauer = Console.ReadLine(); Console.WriteLine(); if (abfrageAusdauer == "y" || abfrageAusdauer == "Y") { Console.WriteLine(); Console.WriteLine("Hat dein Arzt dir nie gesagt, dass Rauchen ungesund ist!? Vermutlich hast du mit dem Qualmen angefangen, als alles um dich herum kontaminierte.. ich verstehe. "); } if (abfrageAusdauer == "n" || abfrageAusdauer == "N") { Console.WriteLine(); Console.WriteLine("Super! Ausdauer ist das A und O. Wer mentale und körperliche Ausdauer vorweisen kann, der kann schon so gut wie alles erreichen im Leben."); } if ((abfrageBeweglichkeit == "y" || abfrageBeweglichkeit == "Y") && (abfrageAusdauer == "n" || abfrageAusdauer == "N")) { Console.WriteLine(); Console.WriteLine("Deine körperlichen Voraussetzungen könnten kaum besser sein! Ehrlich, ich sehe eine gute Zukunft für dich. Wir schaffen das!"); } if ((abfrageBeweglichkeit == "n" || abfrageBeweglichkeit == "N") && (abfrageAusdauer == "y" || abfrageAusdauer == "Y")) { Console.WriteLine(); Console.WriteLine("Meine Bytes schulden dir Ehrlichkeit: Es wird sehr hart für dich. Hier können wir festhalten, dass deine Vorgehensweise niemals offensiv sein sollte. Du musst extrem deine Körperkraft pushen, sonst hast du einfach keine Chance!"); } if ((abfrageBeweglichkeit == "y" || abfrageBeweglichkeit == "Y") && (abfrageAusdauer == "y" || abfrageAusdauer == "Y")) { Console.WriteLine(); Console.WriteLine("Nun, es nützt nicht sehr viel, wenn du eine gute Beweglichkeit vorweisen kannst, aber keine Ausdauer hast. An der Stelle wird dich dein Verstand auffangen müssen. Aber mich hast du ja jederzeit in der Tasche."); } if ((abfrageBeweglichkeit == "n" || abfrageBeweglichkeit == "N") && (abfrageAusdauer == "n" || abfrageAusdauer == "N")) { Console.WriteLine(); Console.WriteLine("Du bist nicht gelenkig, aber dafür ausdauernd? Nun. Nutze deine Ausdauer gut. Wenn du schlau bist und sich die Gelegenheit bietet, mache so oft du kannst Dehnübungen, vor allem bevor es körperlich anstrengend wird. Aber wenn du schon nicht allzu gelenkig bist, vernachlässige bloß deine Körperkraft nicht!"); } Console.WriteLine(); Console.WriteLine(); return "ergebnisKraftBeweglichkeitAusdauer"; } public static void Temperaturabfrage() { string yesOrNo = "c"; int geparsedTemp = 0; do { Console.WriteLine("Die Welt ist hart da draußen. Sag mir, ob du einschätzen kannst, wie viel °C draußen in etwa herrschen: "); string temp = Console.ReadLine(); Console.WriteLine("Die Temperatur beträgt {0} °C? (y/n)", temp); yesOrNo = Console.ReadLine(); geparsedTemp = Int32.Parse(temp); } while (yesOrNo == "n" || yesOrNo == "N"); Console.WriteLine("Danke für deine Offenheit!"); if (geparsedTemp < 10) { Console.WriteLine("Wenn du ohne Jacke raus gehst, wird dir kalt! Unterkühlung in deiner Situation wäre ein Fehler, der lebensgefährlich werden kann! Außerdem hast du zusätzliche Taschen um wichtige Materialien zu verstauen."); } if (geparsedTemp == 10) { Console.WriteLine("Eine leichte Übergangsjacke wäre sinnvoll."); } if (geparsedTemp > 10 && geparsedTemp <= 15) { Console.WriteLine("Ein Pullover genügt völlig."); } if (geparsedTemp > 20 && geparsedTemp < 29) { Console.WriteLine("Dir wird auf jeden Fall ein T-Shirt reichen!"); } if (geparsedTemp > 30) { Console.WriteLine("Geh lieber oben Ohne. Aber denk an eine leichte Kopfbedeckung!"); } Console.WriteLine("Nun hast du die Klamottenfrage geklärt- kommen wir zu etwas Wichtigerem.."); } } } Ist btw mein erstes WPF Projekt, und ich werde vermutlich nach diesen 2 Fenstern weitere "Seiten" hinzufügen und die "forward"+"backward"-Buttons entsprechend zu meinen Antwortmöglichkeiten verknüpfen. Bei den Zahleneingaben nehm ich z.B. einfach erstmal nen Slider. Und die Umsetzungsmöglichkeit für eine Art Lauftext suche ich auch schon eine Weile (will es halt möglichst einfach halten, damit ich auch wirklich selbst verstehen lerne was ich da tue) Das Ding hat meiner Meinung nach für mich großes Potential, weil ich es Storytechnisch immer weiter ausbauen kann, und vor allem neue Kenntnisse (von weiteren folgenden Sprachen) in diesem Projekt mit kleinen Gimmiks immer weiter umsetzen kann. Nochmal besten Dank! Fin
  3. Hallo! Als Frischling habe ich eine Konsolenapp geschrieben. Grober Inhalt/Ablauf: Starttext in Konsole: "Hallo, wie ist dein Name?" App wartet auf Eingabe + Bestätigung, folgend: Rückgabe der Konsole "Wunderbar, willst du ein Abenteuer mit mir erleben?" App wartet auf Eingabe + Bestätigung, folgend: Rückgabe der Konsole "Ist es draußen warm oder kalt?" App wartet auf Eingabe + Bestätigung usw usw usw Nun habe ich mein erstes Willkommensfenster in WPF erstellt. Aber wie setze ich nun das Clickevent so um, dass sich einfach nur der Text im Fenster ändert, sodass sich quasi eine Art "Konversation" ergibt? Vielleicht sehe ich den Wald vor lauter Bäumen nicht, bitte um möglichst anfängerfreundliche / sinnvollste Varianten mein Vorhaben umzusetzen... Die Eingabe der Nutzerantworten erfolgt zumeist via ButtonClicks. Beste Grüße, Fin
  4. Hallo! Ich schreibe gerade an meiner ersten eigenen HP. Nutze bewusst ausschließlich Html/Css. Für meine Hobbys habe ich Hexagonbilder erstellt. Soweit alles gut. Aber ich möchte sie nicht einfach "in den Raum werfen". Mir kam also die Idee, etwa 5 Hexagonbilder einfach mittig zu platzieren. Habt ihr ne Idee, wie ich das am einfachsten umgesetzt bekomme? Ich hab mir das etwa so vorgestellt, wie unten im Bild zu sehen. LG FIN
  5. Hallo Leute, wäre echt dankbar, wenn mir jemand Zwischenprüfungen für FIAE (am liebsten der letzten 5 Jahre inkl. Lösungen) schicken könnte: fl.behner@gmx.de Habe krankheitsbedingt (unverschuldet) leider über 5 Wochen gefehlt, bin echt drauf angewiesen, und habe keine money zum kaufen. 💣 Mit bestem Dank!

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung