Einige Fragen zu Bildern-, MP3- und neue Seiten- Aufrufen (WPF, Basic)

  • WPF

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von FritzHugo3.

    Einige Fragen zu Bildern-, MP3- und neue Seiten- Aufrufen (WPF, Basic)

    Hallo Comunity, nach nun über 20
    Stunden Suchen im Internet (ich finde ständig nur Sachen für C# oder Winforms) gebe
    ich nun auf und versuche es mal hier im Forum.

    Visual Studio Express (kostenlose Version)
    WPF, Visual Basic (Für eine spätere Windowsanwendung/ *.exe)
    Als externe Recource habe ich die „System.Windows.Forms.dll“
    in den „Projektmappen-Explorer“ eingefügt.


    Problem 1: Wie kann ich über den Basic Code ein Bild
    anzeigen lassen?

    Derzeit habe ich mir mit folgendem beholfen, ist
    allerdings nicht wirklich das wahre, also wäre ich Dankbar über eine reine VB Lösung.

    VB.NET-Quellcode

    1. Xaml:
    2. <Window x:Class="MainWindow"
    3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    5. Title="MainWindow" Height="350" Width="525">
    6. <Grid>
    7. <Button x:Name="Knopf1" Content="Bild sichtbar machen" HorizontalAlignment="Left" Margin="360,4,0,0" VerticalAlignment="Top" Width="147"/>
    8. <Button x:Name="Knopf2" Content="Bild unsichtbar machen" HorizontalAlignment="Left" Margin="360,29,0,0" VerticalAlignment="Top" Width="147"/>
    9. <Image x:Name="Bild" Source="Bilder\test.png" Stretch="Fill" Visibility="Hidden" Margin="10,10,368,236"/>
    10. </Grid>
    11. </Window>


    VB.NET-Quellcode

    1. Basic:
    2. ClassMainWindow
    3. Private Sub Knopf1_Click(sender As Object, e As RoutedEventArgs) Handles Knopf1.Click
    4. Bild.Visibility = Windows.Visibility.Visible
    5. EndSub
    6. PrivateSub Knopf2_Click(sender As Object, e As RoutedEventArgs) Handles Knopf2.Click
    7. Bild.Visibility = Windows.Visibility.Hidden
    8. EndSub
    9. End Class


    Problem 1 Alternative in Visual Basic?



    Problem 2: Warten bis eine MP3 / Audiodatei abgespielt
    wurde.
    Das Abspielen der MP3-Datei habe ich folgendermaßen
    gelößt.

    VB.NET-Quellcode

    1. ClassMainWindow
    2. Private Sub Knopf4_Click(sender As Object, e As RoutedEventArgs) Handles Knopf4.Click
    3. Dim mplayer AsMediaPlayer
    4. mplayer = NewMediaPlayer
    5. mplayer.Open(NewUri("Audio/test.mp3", UriKind.Relative))
    6. mplayer.Volume = 1
    7. mplayer.Play()
    8. EndSub
    9. End Class


    Ich könnte mir nun theoretisch die Laufzeit der
    Sounddateien aufschreiben und mit einem Timer runterzählen lassen und so auf das
    Ender der MP3 warten lassen.

    Mein Timer:

    VB.NET-Quellcode

    1. ClassMainWindow
    2. Private Sub Knopf3_Click(sender As Object, e As RoutedEventArgs) Handles Knopf3.Click
    3. Dim Stopw AsNewStopwatch
    4. Dim Wartezeit AsInteger
    5. Wartezeit = 5000
    6. Stopw.Start()
    7. DoUntil Stopw.ElapsedMilliseconds >= Wartezeit
    8. System.Windows.Forms.Application.DoEvents()
    9. Loop
    10. Stopw.Stop()
    11. Stopw.Reset()
    12. Bild.Visibility = Windows.Visibility.Visible
    13. MsgBox("Wartezeit")
    14. EndSub
    15. EndClass

    aber das ist sehr mühselig und unsauber.

    Problem 2 Lösung? Gibt es eine Möglichkeit per Code auf
    eine Rückmeldung der MP3 zu warten und dann erst mit dem Code weiter zu machen?


    Problem 3: Wie kann ich von meinem Hauptfenster eine neue
    Seite aufrufen lassen?

    Ich verstehe das so und ich bitte mich dahingehend zu
    korrigieren, wenn ich falsch liege.

    Ich sehe das Fenster als eine Art Browser und die Seiten
    als die angezeigten Internetseiten.

    Mein derzeitiger Code funktioniert leider nur bei
    Fenstern, nicht aber bei Seiten.

    VB.NET-Quellcode

    1. PrivateSub Knopf5_Click(sender As Object, e As RoutedEventArgs) Handles Knopf5.Click
    2. Dim NeueSeite AsNewNeueSeite
    3. NeueSeite.Show()
    4. EndSub

    Problem 3 Lösung? Wie kann ich aus meinem Programmfenster
    eine neue Seite aufrufen?


    Als Hinweis und Bitte. Ich habe gerade erst angefangen
    und versuche mich noch am Krabbeln, also bitte so einfach wie möglich
    Ausdrücken, sozusagen für die ganz Dummen.

    Ich bedanke mich für eure Zeit und hoffe auf konstruktive
    Lösungsvorschläge, am liebsten mit dem richtig funktionierendem Code.


    PS.: Hatte das ganze in Word vorgeschrieben, wird komischerweise etwas seltsam hier angezeigt, sorry.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „FritzHugo3“ ()

    Unglaublich nach Stundenlangem und etlichen Versuchen, ist der Foremserver mal endlich wieder erreichbar ^^

    Danke dir ErfinderDesRades, für deine Antwort, Text wird oben von mir demensprechend Editiert (wenn mich die Seite dann noch lässt).


    Zum Problem 3, mit dem Bild:
    Den Link, den du mir geschickt hast und das herunterladbare Projekt dazu kannte ich schon von meiner Googlesuche, nur kann ich damit einfach nichts anfangen, das ist viel zu komplex und zu kompliziert für mich, da sind dutzende von Dateien und Code, den ich gar nicht benötige.
    Ich suche eher etwas ganz simples. Nach meinem Verständnis bräuchte ich das wpf Gegenstück zu "Bild.Show()"

    Der unten stehende Code verursacht keinen Fehler, leider aber auch kein Bild *g*. Ich Interpretiere den Code als, Was nun kommen soll ist ein Bild, das Bild hat die und die Atribute und jetzt fehlt noch die Zeile/der Befehl zum ausgeben. Quasi der Code für den Startschuß.

    VB.NET-Quellcode

    1. Class MainWindow
    2. Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Knopf.Click
    3. Dim Bild As New Image
    4. Bild.Source = New BitmapImage(New Uri("F:\test.png"))
    5. Bild.Width = 20
    6. Bild.Height = 50
    7. End Sub
    8. End Class


    Zum zweiten Problem mit MP3 kannst du mir ja nach eigenem Angaben nicht zu sagen.

    VB.NET-Quellcode

    1. PrivateSub Knopf5_Click(sender AsObject, e AsRoutedEventArgs) Handles Knopf5.Click
    2. Dim NeueSeite AsNewNeueSeite
    3. NeueSeite.Show()
    4. EndSub

    funktioniert ja wie gesagt leider nur beim wechseln des ganzen Fensters.

    Denke dir/euch

    Aber vielleicht zum Problem nummer 3.
    Wie ist denn das passende Gegenstück zum wechseln einer Seite?


    PS.: "...wird komischerweise etwas seltsam hier angezeigt, sorry. " war eher in Bezug auf die seltsamen Zeilenumbrüche gemeint.
    Wpf ist konzeptionell ausgelegt auf saubere Trennung von Logik und Oberfläche.
    Mein Beispiel zeigt auf, wie man sowas sauber umsetzt, und - ja: dazu brauchts erhebliches zusätzliches und nicht leicht verständliches Brimborium. Aber das Brimborium ist wiederverwendbar, und sorgt dafür, dass der individuelle Code sehr knapp sein kann, und dabei auch enorm leistungsfähig ist.

    Wenn du meinst, du brauchst etwas anneres - viel Glück bei der Suche, und noch mehr Glück mit den Fundstücken wünsch ich dir.

    Und vlt. erinnerst du dich ja iwann wieder dieses Ansatzes, der ja nachweislich funktioniert.
    Das ist in etwa so als würde der Meister dem Lehrling einen Porsche hinstellt und sagt, hier lern mal, schließlich funktionier das Auto ja.
    Nur hilft das keinem weiter.

    Mag ja sein das das ein super Code ist, er nützt nur nichts, wenn ich da nichts verstehe!

    "Wenn du meinst, du brauchst etwas anneres - viel Glück bei der Suche, und noch mehr Glück mit den Fundstücken wünsch ich dir." Hört sich etwas überheblich an, aber das weist du glaub ich selber ;-). Kann es sein das du bei wtf über 17.000 Beiträgen deine eigenen Anfänge vergessen hast oder es schlicht leid bist einem Anfänger so zu Antworten, das er etwas damit anfangen kann? Ist wirklich nicht böse gemeint.

    Das hier z.B. ist unter den Beispieldateien zu finden code.msdn.microsoft.com/WPF-Tile-Puzzle-Game-2bf786f1, es funktioniert ebenfalls und ist weniger verwirrend nur verstehe ich es auch nicht.


    Wäre schön, wenn sich noch jemand anderes melden würde, vielen Dank

    (Ist das normal, das der Forenserver hier ständig dicht ist?)

    FritzHugo3 schrieb:

    Als externe Recource habe ich die „System.Windows.Forms.dll“ in den „Projektmappen-Explorer“ eingefügt.

    Das ist nicht Sinn der Sache. Auf keinen Fall WPF mit Windows Forms vermischen, du machst dir alle Vorteile kaputt und kannst gleich WinForms nehmen. Es scheint mir auch, als hättest du den Sinn von WPF noch nicht ganz verstanden, bzw. was für Vorteile es mit sich bringt. Du brauchst ein gescheites Pattern mit ViewModel etc.
    Wenn du möchtest, dann kann ich dir ja mal bisschen zeigen, wie das geht und was es macht, aber du musst Lernwillen zeigen, ansonsten wird das nix.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    jo, das klingt immer leicht arrogant, wenn ich sage: so gehts, und anners gehts nicht. Ich sage das aber nicht aus Arroganz, sondern weil ich mich eingehend damit beschäftigt habe, und es halt genau so fund.

    Hab kurz in deine MS-Lösung reingeguckt, und ist genau, was ich sage: es funktioniert, ist aber am grundlegenden Pattern - MVVM - vorbei. Also du begibst dich auf einen Holzweg, wenn du in diese Richtung weitermachst, und schreibst im Grunde nur WinForms-Anwendungen mit wpf-Controls.

    Also angenommen, du willst Autorennen mitfahren - was soll ich tun, ausser einen Rennwagen bereitstellen?
    Und was soll ich tun, wenn du sagst: "Ich kann aber nur Kutsche"?

    nenn es wie du willst - mw. arrogant - aber du kannst deine Kutsche noch so pimpen (und findest sicher auch viele Werkstätten, die dir dabei helfen) - es ist und bleibt grotesk, wenn du damit antrittst.
    Ich weiß schon, wieso ich normalerweise erst in Word schreibe, einmal direkt im Forum, also zum zweiten Mal ^^.

    Nur noch Mal zum Verständnis von „ErfinderDesRades“, nicht jeder möchte gleich eine komplette Sprache erlernen, wenn er im Forum eine Frage stellt. Wenn ich weiß, wie ich Spiegeleier mache und ein Rezept für Rührei brauche, möchte ich keine Kochlehre machen vorher. So lange die Kutsche ins Ziel einfährt reicht mir das, ich will das Rennen gar nicht unbedingt gewinnen ;)


    „Trade“:
    „Das ist nicht Sinn der Sache. Auf keinen Fall WPF mit Windows Forms vermischen“
    Das ist mir schon klar, dass das nicht Sinn der Sache ist, in Ermangelung einer Alternative, die ich nach etlichen Homepages nicht gefunden habe, bin ich jedoch sehr Glücklich darüber gewesen, dass dieser Codeschnipsel funktioniert. Wenn du eine ebenso einfache und bessere Lösung für mich hast, immer gerne her damit. (falls es eine Homepage/Beispiel/Erklärung dazu gibt noch besser aber nicht zwingend, am wichtigsten ist, dass ich es reproduzieren kann).

    „Wenn du möchtest, dann kann ich dir ja mal bisschen zeigen, wie das geht und was es macht“ Das wäre sehr, sehr geil! Wie genau sollen wir das machen? Übers Forum, Skype, E-Mail….?

    Wieso gibt es eigentlich so wenig Schritt für Schritt Anleitungen/Homepages für Basic/WPF im Netz?


    Wenn es keine Möglichkeit in VB, WPF gibt ein einzelnes Bild in unter 10 Zeilen Code einzufügen, sagt es einfach, dann habe ich fälschlicherweise auf die Stimmen im Netz gehört, die sagen, das Winforms eine aussterbende, veraltete Technik ist und versuche es dort, zumindest findet man darüber sehr viel leichter zu verstehende Tutorials im Netz.

    Der eigentliche Grund war aber, wieso ich mich für WPF entschieden habe, weil ich bei Winforms große Probleme mit den grafischen Lösungen hatte, Transparente Grafiken und so Sachen.


    Lernwillig versuche ich immer noch zu sein, auch wenn es schon echt frustrierend sein kann manchmal. Meistens findet man nur Winform oder C# im Netz.
    Das ist mal ein kleiner Auszug von den Seiten die ich mir bisher angeschaut habe (oder zumindest Teilweise).

    (und natürlich die Microsoftseiten)
    channel9.msdn.com/Series/Visua…nt-for-Absolute-Beginners
    youtube.com/watch?v=GWqLnjem8y…=UUfs2JcT7KhsLVd5IBB148Qg

    biggle.de/blog/alle-fenster-einer-wpf-anwendung-schliessen
    openbook.galileocomputing.de/v…cea8b97993b413f884aa6a3a7
    social.msdn.microsoft.com/Foru…d-click-in-image-with-wpf
    youtube.com/watch?v=xgY3SOwkaXc
    openbook.galileocomputing.de/einstieg_vb_2008/
    wpftutorial.net/LearnWPFin14Days.html
    vbcity.com/blogs/xtab/default.aspx
    youtube.com/watch?v=nFuN6Rql4rI

    MVVM: youtube.com/watch?v=X25TQ7M3IUA

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

    Also, ich kann dir mal zeigen, wie das MVVM grundsätzlich implementiert wird und was es macht. Das kann ich dir anbieten. Wenn du TeamViewer und Skype hast, dann wäre das ausreichend. PN an mich und wir klären das. ;)
    Dann hast du die grundlegenden Sachen zu Bindings usw. schon mal und den Rest kannst du dir erarbeiten. Mehr geht aber leider nicht, denn dafür hab ich nicht die Zeit usw.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich bedanke mich recht herzlich für die Mühen von "Trade", der mir fast eine ganze Stunde "einzelunterricht" gegeben hat für seine Zeit und Gedult *g*

    Auf anraten bin ich auf Winforms umgestiegen und was ich nach intensiver Suche in zwei Wochen nicht hinbekommen habe, habe ich nun bei Winform in etwa 1 Stunde hinbekommen *g*