Suchergebnisse

Suchergebnisse 1-28 von insgesamt 28.

  • Benutzer-Avatarbild

    Jupp, das Package kann einfach gelöscht werden, wird bei Bedarf neu geladen. @kafffee Könnte es sein das dir DesignTime/RunTime reingrätscht? Ich mache meinen Mediaplayer auch noch mal mit WPF neu, ich hatte da Probleme im ViewModel zwischen RunTime und DesignTime zu unterscheiden, im Konstruktor von ViewModels hole ich die Services die ich in der App.xml im StartUp hinzufüge, zur Designtime können die nur null sein, deshalb meldete auch der Designer immer (Es wurde keine Object-Instanz.....) in…

  • Benutzer-Avatarbild

    Ich probiere gerade auch das zu realisieren, gar nicht so einfach, manche Funktionen wollen ein Forms.Control als Argument(WaveForm aus Misc oder Visuals z.B. sobald ein CallBack verwendet wird). Wäre das nicht, hätte ich bereits was, aber ein Verweis auf WinForms kommt mir net in die Tüte. Immerhin hab ich schonmal ein schwarzes Bild ohne Fehlermeldung. Liegt wohl am Konvertieren. Ich schau mal in deiner Mappe nach, probiere weiter und berichte bei Erfolg. @kafffee Zitat von BuildAusgabe: „​Sys…

  • Benutzer-Avatarbild

    Das ja, aber sobald man den Konstruktor mit Callback nimmt, ist ein Forms.Control von nöten. Ich habe alles was die BASS angeht in einem weiteren Service, damit ich auch im EqualizerFenster-ViewModel drauf zugreifen kann. Wäre doch schön, sobald eine Datei abgespielt wird, wenn mit Callback die WF generiert wird, sobald fertig ein Event feiern. (EventHandler<BitmapSource>) was im ViewModel abboniert ist.

  • Benutzer-Avatarbild

    Ich glaube ich habe was gefunden, ich denke das rendern ist noch nicht durch und daher der Fehler. MeineWellenFormCallBackFunktion wird nie verwendet, da sind wir wieder bei den CallBacks. Was mir jedenfalls aufgefallen ist, das Image das kommt ist nur zum Teil gerendert, siehe Anhang. Ich probiere das noch mal ganz anders.

  • Benutzer-Avatarbild

    Nein, das ist dein Projekt ohne Bearbeitung. Ich habe die Fehler gefunden. Das Bitmap ist tatsächlich noch nicht fertig. Die While Schleife mit IsRenderingInProgress geht nicht, aber IsRendered liefert das was wir brauchen. VB.NET-Quellcode (28 Zeilen) Dann hier: VB.NET-Quellcode (4 Zeilen) Soll wohl eher: VB.NET-Quellcode (1 Zeile) Also bei mir klappt das nun. Edit @kafffee Code korrigiert, hatte STRG Z gedrück, daher fehlte das Not beim While. Wäre doch schöner mit Callback anstatt mit Loop wa…

  • Benutzer-Avatarbild

    Also wenn du WaveForm.RenderStart callst, startet die BASS die Datei zu analysieren/daten daraus zu laden. RenderStart finde ich einen blöden namen für die Funktion, den rendern ist für mich ein Bild erstellen, egal ob Datei oder direkt auf'm Schirm. Dabei wird ja mit WaveForm.CreateBitmap das Bild gemacht, also irgendwas mit init oder prepare wäre besser. Aber das scannen der Datei dauert halt einen kleinen Moment, daher die While Schleife. Danach ist ja alles parat und man kann sich das Bitmap…

  • Benutzer-Avatarbild

    Zitat von kafffee: „bei mir dauert halt alles bissle länger...“ Nicht schlimm, auch langsam kommt man ins Ziel. Mit WPF dauerts bei mir auch länger, recherchieren, tippen, recherchieren, haare raufen, recherchieren, tippen. Bin froh wenn ich das endlich alles weiß und zum großen Teil das Recherchieren sparen kann. Bei meinem letzten Re-Write meines Mediaplayers in Forms, war ich schon 2-3 mal weiter. Also mit dem malen, da bin ich mir nicht ganz so sicher. Manche scheinen bei Custom(nicht user)C…

  • Benutzer-Avatarbild

    @kafffee Ich hab mal weiter ein wenig probiert, hab ein Control gemacht, das sowohl DependencyProperties für ein BitmapSource und double hat. BitmapSource is klar, für das WaveForm Bild gedacht, die Property typ double für die Marker-Position, einfach %, kann man gut ausrechnen. Ich finde schon das in dem Fall CodeBehind sinnvoll ist, betrifft ja alles nur das Control-Interne. Solange später die Properties ans VM gebunden werden. Das ist ohne WVVM, war zu faul eine ganze Mappe nur für Test-Zweck…

  • Benutzer-Avatarbild

    Naja, das mit den Pixeln müsste ich bei meiner Variante nicht direkt. Deshalb ja %, 100 / TrackLength * TrackPosition, der Property MarkerPercentage geben und alles ist im Control geregelt. Brauche keine Width oder Height sonst wo, nur im OnRender des Controls. Klar hab ich so nicht die Größe des Controls um eine passgenaue Bitmap zu erstellen(im Fall von MVVM), das ließe sich aber auch über Umwege machen, aber muss glaub ich nicht sein, bisschen Skalieren wird keinem auffallen.(Zumindest nicht …

  • Benutzer-Avatarbild

    @kafffee Ich bin gerade an ganz anderer Stelle unterwegs. Ich hab die BassNet zerpflückt und selbst kompiliert, so das ich einen WaveForm-Konstruktor(mit Callback-Argument) ohne Forms.Control habe. In WinForms wird das Bild schon gezeigt bevor es ganz fertig ist(wird stück für Stück geupdated), daher finde ich das mit dem Callback so gut, in WPF müssen wir warten bis ganz gerendert wurde. Ich muss aber noch ein Problem lösen, wenn ich das zum Teil gerenderte Bild der Property zuweisen will knall…

  • Benutzer-Avatarbild

    Gibt da ein magisches Werkzeug für NET-Kompilate, nennt sich IlSpy Damit kannst du aus NET-DLLs/-EXEs wieder den Source herstellen(nicht 1:1), man kann das auch als VS-Projekt speichern, diese Projekte sind aber nicht immer ohne weiteres Lauffähig, hin und wieder muss man noch Hand anlegen, aber die aktuelle Version von IlSpy hat das gut mit der BassNet hinbekommen, war nicht mehr viel zu machen. github.com/icsharpcode/ILSpy Gibt es auch schon fertig kompiliert im MS-Store als Desktop-App.

  • Benutzer-Avatarbild

    Zitat von kafffee: „Und wie weit bist du gekommen mit deiner Callback-Funktion?“ Also mit dem Callback da seh' ich mittlerweile schwarz. Ich konnte zwar ohne Probleme das Callback einbauen, aber der Zugriff auf das Bitmap geht in die Hose. Ich bekomme die Meldung das das Object bereits an anderer Stelle verwendet wird(selbst wenn ich das Bitmap Clone in der BassNet und dann ausgebe), ich müsste einiges in der BassNet ändern, das gefällt mir nicht, müsste ich immer wieder nach einem Update ändern…

  • Benutzer-Avatarbild

    @kafffee Ein Verweis auf WInForms reicht, einfach Nothing für's Control reingeben. Wenn man diesen Konstruktor nimmt, muss nur System.Windows.Forms.Control bekannt sein. Also muss nur drauf verwiesen werden. Wenn der Kompiler nicht weiß wie viel platz(Bytes) er dort verwenden muss kann das nicht gehen, sobald drauf verwiesen ist, kennt er an dieser Stelle die Größe und kann das kompilieren.

  • Benutzer-Avatarbild

    Ich habs, warum auch immer das jetzt geht. Der relevante Code, sieht genau so aus wie in WinForms, also das laden, man sieht wie das Bild mehrfach geupdated wird, wärend gescannt wird. Ich glaube fast weil ich das jetzt im Service machen, nicht im ViewModel selbst und das Event aus dem Service heraus feuer geht es. Wichtig! Das hier: C#-Quellcode (1 Zeile) Wird bei dir nicht gehen, Verweis auf WinForms und Nothing anstatt IntPtr.Zero, ich hab ja die editierte BassNet. C#-Quellcode (35 Zeilen)

  • Benutzer-Avatarbild

    Also da fehlen Grundlagen, also wie man Events deklariert, abonniert und feuert. Zitat von kafffee: „(1) Public WaveFormRendered As EventHandler(Of BitmapSource) Ich kenne das jetzt nur so, z.B.: AddHandler BitmapSouce.Event, AddressOf WaveformRendered“ Das erste ist eine Deklaration eines events, das andere ist zum abonnieren. Also diesen Code habe ich in einem Service, weil wir die Bass ja nur einmal laden brauchen aber auf keinen Fall zur Designtime, habe ich das BassZeugs in einem Service. I…

  • Benutzer-Avatarbild

    Zitat von kafffee: „Manchmal sucht man halt echt an der falschen Stelle...“ Oh ja, gestern hatte ich auch so einen Moment von Dauer. Mir flog immer eine Null-Reference-Exception um die Ohren, konnte mir das nicht erklären. Überall gesucht, nur nicht da wo es falsch war. Ändern mal in der App.Xaml.vb die Reihenfolge in welcher die Services hinzugefügt werden, so das der Fensterservice vorm BassLibService instanziiert wird(mach ich ja in der selben Zeile), heute morgen beim Kaffee da hatte ich dan…

  • Benutzer-Avatarbild

    Ich kann dir morgen via PN meine C# Projektmappe geben. Ich finde da hab ich die Architektur ganz gut. Solltest du dir mal anschauen, kurz erklärt: Über die Fensterservices komm ich an den DataContext der Fenster, jedes Fenster hat ein eigenes ViewModel. Dazu habe ich ein MasterViewModel, in diesem ViewModel habe ich Properties der anderen ViewModels, nun kommen die Services ins Spiel, über die hole ich den DataContext der Fenster, somit hab ich die ViewModel-Instanzen in der MasterViewModel kla…

  • Benutzer-Avatarbild

    Erstmal brauchst du keine weitere Bitmap, von CreateBitmap kommt schon eine, du kopierst sie nochmal. Aber das ist es nicht, häng mal dein Projekt an.

  • Benutzer-Avatarbild

    Also ich hatte auch Probleme damit. Das Image-Control musste erst einmal gerendert werden, danach passte die Größe. Ob das beim Canvas auch zutrifft, musst du mal probieren. Gelöst habe ich das dann so: C#-Quellcode (19 Zeilen) Im FensterService: C#-Quellcode (4 Zeilen)

  • Benutzer-Avatarbild

    Das hatte ich auch. Aber nach dem ich das mit der Waveform im BassLibService hatte, war das weg. Irgendwie bist du im falschen Thread, ich erzeuge MainWindowService und BassLibService im selben Thread vllt. geht es deshalb bei mir. Ein Blick in die Projektmappe und ich kann mehr dazu sagen. Hier zu sehen: Grafisches Problem - WinForms zu WPF Ich verwende ja ein MasterViewModel, darin manage ich die Kommunikation zwischen den ViewModels, über die IWindowServices komm ich an jeden DataContext(die …

  • Benutzer-Avatarbild

    Also ein seperates Thema, oder häng mal deine Mappe an bzw. eine die das Reproduziert. Aber ja, mit einer anonymen Funktion meinte ich das. Du kannst so ja Subs/Funktionen nutzen, diese sind nirgends deklariert sind, keinen Namen haben, daher wohl "anonym".

  • Benutzer-Avatarbild

    Zitat von kafffee: „...Habs grad mal an dieser Stelle mit ThreadPool.QueueUserWorkItem probiert, aber da kommt immer noch der gleiche Fehler.“ Nachdem ich und @kafffee privat dran sitzen hier noch mal für alle, was das Problem mit den Threads und der DependencyProperty ist. Also Problem ist folgendes, Dispatcher.Currentdispatcher gibt dem Dispatcher für den aktuellen Thread zurück bzw. einen neuen wenn keiner für diesen Thread existiert, da die Funktion WennTrackBeendet von der Bass in einem Neb…

  • Benutzer-Avatarbild

    Klar wird da eine Instanz vom MainWindow erstellt. Deshalb lege ich in der Application.xml auch keine StartUpUri fest, damit dort kein MainWindow erzeugt wird. Dafür nutze ich die Services, so erzeuge ich dann die Instanzen der Services, mit denen dann auch die Windows "bedient" werden können. VB.NET-Quellcode (8 Zeilen) An die Instanzen der WindowServices, kommst du dann so wie oben schon zu sehen., Wichtig ist damit der ServiceManager zwischen den Services unterscheiden kann, für jedes Fenster…

  • Benutzer-Avatarbild

    ViewModel-Klasse != Service-Klasse eines Fensters. Du legst doch den DataContext(das ViewModel) im Window.DataContext fest oder nicht? Da wird dann deine ViewModel Instanz erzeugt. Jedes Fenster hat ein eigenes Interface welches vom gezeigten IWIndowService erbt. Für jedes FensterInterface eine Klasse anlegen welche das jeweilige Interface implementiert. Das/die ViewModel/s im DataContext der Fenster festlegen. Ich habe ein ApplicationViewModel, dort drin habe ich die Instanzen aller ViewModels,…

  • Benutzer-Avatarbild

    So hab das eben gemacht, musste wieder feststellen das ich echt Probleme hab VB zu schreiben, hab mich so an C-Syntax gewöhnt. Analysiere nun die Architektur. Denke dabei nicht an dein Projekt, nur an dieses sonst wirst du wohl durcheinander kommen. Noch eine Anmerkung dazu: Um ViewModel oder WindowService übergreifende Kommunikation zu ermöglichen Events nutzen(das Thema hatten wir ja schon in den PNs) Entweder in den ViewModels Events einbauen die dann von außen abonniert werden können, oder i…

  • Benutzer-Avatarbild

    @kafffee Zitat: „System.InvalidCastExceptionHResult=0x80004002Nachricht = Das Objekt des Typs "VamosALaPlayer_3._0.App.Services.MainWindowService" kann nicht in Typ "VamosALaPlayer_3._0.ViewModel.Services.IMainWindowService" umgewandelt werden.“ Nochmal dazu, hab mich iritieren lassen von deinen OpenWindow argumenten, jetzt fällt es mir grad auf. Sorry, ich hätte die fehlermeldung besser lesen sollen. VamosALaPlayer_3._0.App.Services.MainWindowService != VamosALaPlayer_3._0.ViewModel.Services.IM…

  • Benutzer-Avatarbild

    Naja gleich ist das wohl nicht, ich müsste da die Mappe sehen. Schick mir deine aktuelle Mappe per Email, dann schaue ich rein und kann mehr sagen. Jetzt buche ich erstmal ein Hotelzimmer und fahre dann zum 2-3 Tage pokern, zwischendurch kann ich dann in dein Projekt reinschauen. Lange nicht gepokert, dabei räumt sich mein Oberstübchen von allein wieder auf. Bis denn PS. Ist IMainWindowService ein Interface oder Klasse? Sollte Interface sein. Ist MainWindowService eine Klasse oder Interface? Sol…

  • Benutzer-Avatarbild

    Ja das kommt mir auch bekannt vor. Aber schön das du das denn doch noch gefunden hast. Sind aber nicht immer Typos, hatte kürzlich die Services in falscher Reihenfolge hinzugefügt und wunderte mich warum irgendwas "Null" war, hab auch sehr lange gebraucht diesen Fehler zu finden, überall gesucht, nur nicht an der richtigen Stelle. Zitat von kafffee: „Da hab ich schon nicht mehr dran geglaubt...“ In solchen Momenten denke ich mir immer: Die Hoffnung stirbt zuletzt, also nach mir. Also immer dran …