vermutlich hast du da was falsches hochgeladen oder an die falsche Stelle hochgeladen.
Versuch es mal mit einer ganz einfachen html seite.
Lade diese hoch und ruf sie nachher mit dem Browser auf.
Eigentlich musst du es nur auf den Webspace laden und nicht viel mehr
Jein, das Grid ist eigentlich der mächtigste LayoutContainer, man muss es nur richtig verwenden ;)
Du kannst bei den RowDefinitions die Höhe der Zeile angeben.
Entweder du gibst einen fixen Wert (z.B. 200) oder du setzt es auf Auto (die Höhe der Zeile passt sich an den Content an). Die dritte Möglichkeit ist es den Stern (*) zu verwenden. D.h. damit füllt die Zeile den verbleibenden Platz aus. Indem du eine Zahl vor den Stern schreibst kannst du auch noch Gewichtungen vergeben (Zeile 1=1* und Zeile 2=3* => damit wäre Zeile2 immer 3 mal so hoch wie Zeile 1)
ah ok.
Sorry aber da kann ich dir immer noch nicht mehr zu sagen.
Der Code sieht soweit korrekt aus (auch wenn er nicht der schönste ist).
Gib den einzelnen Container einfach mal eine Hintergrundfarbe und guck dir dann an welcher sich falsch verschiebt.
In WPF sollte man normalerweise eigentlich nicht absolute Breite verwenden, da man da alles schön mit den LayoutContainern machen kann.
Du kannst diese noch auf deine Bedürfnisse anpassen oder du machst es selbst.
Dabei musst du einfach wenn der User tippt musst du nach jedem Tastendruck gucken ob es Items gibt die damit anfangen.
Und die Items in der ComboBox danach filtern.
Siehe Automatically Filtering a ComboBox in WPF
in der ersten Variante kann es zu einer Exception kommen wenn im String nicht ein gültiger Double ist.
Im zweite Fall hast du das Try-parse verwendet. Damit kommt es zu keiner Exception, denn er gibt dir den Status über den Return Value zurück.
Was verstehst du eigentlich unter "funktioniert nicht"?
da werden oft irgendwelche Embedded-PCs dazu verwendet.
In deinem Fall geht es ja nur um eine reine Überwachung, oder?
D.h. du musst nicht irgendwelche Pumpen oder whatever in dem Aquarium schalten?
Denn da würde es auch reichen wenn du dir einen Sensor an so einen Embedded-PC anstöpselst (USB, oder meistens Seriell) und dir die Daten über diesen liest.
Diese kannst du dann in eine DB speichern
Dann könntest du auf dem EmbeddedPC evtl. einen kleinen Webserver betreiben und die Daten damit anzeigen
Wahrscheinlich ist da auch besser wenn nicht jeder User selbst in einem Thread nachschaut ob sich der Status ändert.
Verwende da wenn möglich erstens einen Timer oder zweitens einen Thread für alle User
als am einfachsten ist es wenn du das Backup verwendest das du sicherlich täglich erstellst ;)
Ansonsten kannst du die Solution ja neu erstellen und die Projekte wieder hinzufügen.
Wenn es nicht all zu viele sind dann sollte das auch nicht so lange dauern
Ob man es irgendwie direkt importieren (also alle Projekte im Ordner in einem Rutsch) kann ist mir nicht bekannt
anstatt den Thread knallhart mit Abort zu beenden ist besser wenn du es über ein Token machst. Diese Variable (meist Bool) wird auf einen bestimmten Wert gesetzt. Im anderen Thread musst du dann regelmäßig abfragen ob die Variable gesetzt ist und falls nötig die Arbeit beenden.
das Problem ist dass die Seriellen Schnittstellen nur einmal geöffnet werden können.
D.h. wenn Programm A die Schnittstelle verwendet dann kann Programm B das nicht (und umgekehrt).
Es gibt schon Umwege um das was du machen willst zu erreichen, aber wahrscheinlich ist es einfacher wenn du ein fertiges Tool verwendest.
Diese Serial "Sniffer" gibts schon im Internet. z.B. Serial Port Monitor
in Java kann man sowas mit dem JNLP erreichen. Aber das ist IMHO auch nicht das gelbe vom Ei.
In .NET ist mir persönlich kein Weg bekannt sowas zu erreichen (bin auch kein Webexperte).
So eine Funktion hätte doch die große Gefahr dass sie missbraucht wird. Und sowas benötigt man auch recht selten.
das kommt immer drauf an wie groß die Datensätze sind.
Wenn es nur ein Byte ist dann hast du gerade mal 25KB in der Liste :)
Aber bei großen Dateien ist es meist besser wenn man nur das lädt was man auch braucht.
D.h. das was man auch anzeigt. Wenn du zum Beispiele eine Logdatei hast und diese anzeigen willst dann ist es besser wenn du einfach einen kleinen Ausschnitt aus der Datei liest. Wenn der Benutzer nun weiterscrollt dann lädst du einfach weitere Ausschnitte nach.
das was du da machen willst ist nicht wirklich für ein switch geeignet.
Es wird zwar funktionieren ist aber nicht wirklich sinnvoll.
Du kannst das auch einfach mit einer if Anweisung machen.
So z.B.
var extensions = new string[]{".txt", ".png", ".jpg"};
if(!extensions.Contains(fi.Extension.ToLower()))
{
//das wäre dann das selbe wie dein Default im Switch
}
Also bei Programmen verwende ich WPF und für Websites ASP.NET
Aber ich werde mich (sofern ich mal die Zeit dazu finde) mit HTML 5 etwas auseinander setzen.
Das wird in Zukunft wahrscheinlich ziemlich wichtig werden
Es kann auch sein dass du nicht direkt selbst die Threads verwendest. Aber falls von deinem Film-Control ein Event im nicht GUI Thread ausgelöst wird, dann bist du schon im falschen Thread unterwegs.
Deshalb musst du einfach über Invoke den Thread wechseln
aus dem Model heraus sollte man wirklich keine Dialoge öffnen.
Das Model ist nur für die Daten und sollte nicht für andere Dinge "missbraucht" werden.
Ich weiß jetzt nicht genau wie den Programm aufgebaut ist aber wahrscheinlich ist es am Besten wenn du das über ein ViewModel realisierst welches du dazwischen schaltest.
nein, du sollst kein neues Projekt machen.
Füge in deinem aktuellen Projekt einfach ein neues Form hinzu
Also Rechtsklick auf dein Projekt dann auf hinzufügen und dann auf neues Element (oder einfach das Projekt auswählen und dann STRG + SHIFT + A drücken).
Dort kannst du dann den Typ auswählen (in deinem Fall Windows Form).
Die genauen Namen der Menüpunkte kann ich dir nicht sagen, da ich das Englische Visual Studio hab
die zweite Form kannst du auch ganz einfach mit dem Designer bearbeiten.
Erstelle dazu einfach selbst ein Form (mit dem Designer) und dort fügst du dann die Buttons hinzu.
Von deinem ersten Form aus kannst du es dann anzeigen indem du es instanzierst (Form2 f = new Form2()) und anzeigst
wieso hast du überhaupt ein Control erstellt das das selbe macht wie eine ComboBox?
Wahrscheinlich reicht es auch wenn du die ComboBox mit Templates / Styles auf deine Bedürfnisse anpasst oder es ableitest und erweiterst.
Falls du es wirklich selbst nachbauen willst dann verwendest du für den Overlay mit den Items besser ein Popup.
Damit wird es dann auch schön die anderen Controls überlappen.
Das mit dem Z-Index setzen beim Canvas ist zwar auch eine Möglichkeit, aber besser und einfacher ist das mit dem Popup-Control
du kannst den Text auch ganz einfach auslesen.
Dann splittest du den Text nach Zeilenumbrüchen (Environment.NewLine) und anschließend kannst du per Index auf die gewünschte Zeile zugreifen
das Problem ist dass du in deiner Resource ein Image-Object hast.
Ein Image ist in diesem Fall das UserControl welches Bilder anzeigt (also genau das selbe wie das an welches du die Resource zuweisen willst.
Mein WPF Wissen ist mittlerweile ein bisschen eingestaubt aber es sollte funktionieren wenn du anstatt dem Image in den Resourcen ein BitmapImage verwendest
ob es eine Studentenversion vom Office 365 gibt weiß ich nicht.
Ich habe jedenfalls nichts dergleichen gefunden.
Aber die 6 Euro und ein paar zerquetschte im Monat ist es auf jeden Fall wert.
Ich bin mehr als begeistert davon. Endlich auf allen Geräten die gleichen Daten und zudem funktioniert es auch noch ohne Probleme.