Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von PoWl
Thema: Windows 8/10 Touch-Gesten für Fullscreen-Anwendung deaktivieren
Am im Forum: GUI: WPF und XAML

Ich bin gerade auf folgendes gestoßen:

http://stackoverflow.com/questions/34217231/how-to-programmatically-disable-edge-swipe-gesture-of-the-windows-10-tablet-scre

Dieser Code funktioniert scheinbar. Leider verstehe ich überhaupt nicht, was da passiert, würde es aber gerne.

Hat jemand weiterführende Informationen für mich bzw. links, wo ich mich einlesen kann?

Thema: Windows 8/10 Touch-Gesten für Fullscreen-Anwendung deaktivieren
Am im Forum: GUI: WPF und XAML

Hi,

ich programmiere gerade eine Fullscreen-Anwendung. Jedoch sind für die Touchbedienung die in Windows 10 integrierten Touch-Gesten, wie z.b. das Öffnen des Info-Centers beim Swipe nach links sehr störend.

Nach etwas googeln habe ich hier "System.EdgeGesture.DisableTouchWhenFullscreen" entdeckt, welches mit "Prevents edge gesture behaviors when an application window is active and in full-screen mode (or an owned window is active)." genau die von mir gewünschte Funktion erfüllt.

https://msdn.microsoft.com/en-us/library/windows/desktop/jj553591(v=vs.85).aspx

Leider bin ich noch viel zu unerfahren in der Programmierung um das irgendwie implementiert zu bekommen. Sicher muss ich da irgendwas mit PInvoke machen, leider habe ich nicht mal die Idee, wie ich hier anfangen soll bzw. finde nicht genug Informationen darüber.

Kann mir hier wer helfen? Ich erarbeite mir das auch gerne selbst wenn mich jemand auf die richtigen Informationen stoßen könnte. =)

Gruß, Paul

Thema: Focusable="False" funktioniert nicht unter Windows 10
Am im Forum: GUI: WPF und XAML

Also auf dem 1607er System läuft das auch nicht ganz wie gewollt. Der ToggleButton nimmt nun durch Focusable="False" den Fokus anderen Steuerelementen nicht mehr weg. Wenn man ihn mit der Maus bedient erhält er auch keinen Focus mehr. Wenn man ihn jedoch per Toucheingabe mit dem Finger bedient erhält er weiterhin den Focus, bleibt also bläulich gefärbt, nachdem man ihn angetouched hat, auch wenn er eigentlich schon deaktiviert ist. Die Färbung verschwindet erst, wenn man irgendwo anders auf die Oberfläche hintouched.

Deine beiden Tips als Workaround schaue ich mir mal an!

Wo kann man zu WPF bei Microsoft eigentlich Bugreports machen? Oder dürfen das nur ernstzunehmen, professionelle Entwickler und keine Amateure?

Thema: Focusable="False" funktioniert nicht unter Windows 10
Am im Forum: GUI: WPF und XAML

Nvm.

Unter Windows10 1607 scheint es zu funktionieren. Mein Tablet mit 1511 ignoriert Focusable="False". 1607 passt auf mein Tablet aus Platzgründen nicht drauf, es hat nur 16GB. Ich versuche jetzt mal das neuste .Net Framework zu installieren, vielleicht hilft das ja.

Edit: Nein, hilft nicht. Scheint wohl ein Problem von Win10 1511 zu sein. Auf meiner VM mit 1607 geht es. Aber seit dem Update von .Net braucht jede noch so kleine WPF-Anwendung 10 Sekunden zum starten. Jedes mal. Das ist doch verrückt. Diese Technologie macht mir den Eindruck, selbst nach 10 Jahren immer noch überhaupt nicht ausgereift zu sein. Es ist einfach wahnsinn, über wie viele Bugs ich die letzten Tage gestolpert bin.

Edit2: Ich habe gegoogelt und den Tip mit "NGEN update" von hier befolgt. Das hat geholfen. Irre, dass man zunächst zu solchen Maßnahmen greifen muss, die man irgendwo per Zufall in irgendwelchen Foren findet.

Thema: Focusable="False" funktioniert nicht unter Windows 10
Am im Forum: GUI: WPF und XAML

Hi,

für eine Anwendung, welche auf einem Touchscreen-PC laufen wird, programmiere ich gerade eine Oberfläche mit WPF. Ich möchte hier einen ToggleButton nutzen aber es ist für den User sehr irritierend, wenn der ohnehin schon sehr schwach ausgeprägte Farbumschlag des ToggleButtons bei dessen Betätigung auch noch durch den Focus, den er erhält, überlagert wird. Der Zustand lässt sich dabei kaum noch erkennen.

Ich würde generell gerne verhindern, dass Elemente wie Buttons und co. den Focus erhalten. Also habe ich dem ToggleButton die Eigenschaft Focusable="False" gegeben. Auf meinem Entwicklungsrechner mit Windows 7 funktioniert das auch wunderbar. Der Togglebutton erhält auf Klick keinen Focus und nimmt auch anderen Steuerelementen den Focus nicht weg. Auf meinem Windows 10 Touchscreen-PC jedoch zeigt die Eigenschaft überhaupt keine Wirkung.

Warum verhält sich Windows 10 hier anders und wie kann ich nun verhindern, dass der ToggleButton den Focus bekommt?

lg, Paul

Thema: MediaElement macht manchmal das ganze System instabil
Am im Forum: GUI: WPF und XAML

Hi,

das Mediaelement macht bei mir ziemlich Probleme. Es ist nun schon ein paar mal der Fall eingetreten, dass nach Abspielen einiger Videos nacheinander das ganze Programm plötzlich sehr langsam und ruckelig wurde. Videos, Animationen, die ganze Oberfläche wurde sehr langsam und schwerfällig. Nach Neustart des Programms ließen sich dann überhaupt keine Videos mehr über das MediaElement abspielen, sie haben einfach nicht geladen.

Nach dem Beenden des Programms ist mir dann aufgefallen, dass noch zwei Instanzen davon im Taskmanager rumhängen, sich aber auch nicht beenden lassen. Sie reagierten einfach nicht auf den Befehl "Task beenden", erzeugten keine CPU-Last und hatten ca. 1MB RAM-bedarf. Generell fühlte sich die gesamte Windows-Oberfläche total ruckelig an, und das, obwohl im Taskmanager kaum RAM oder CPU-Auslastung zu verzeichnen gewesen wären.

Als ich das Tablet neu starten wollte hieß es "Diese App verhindert das Herunterfahren", jedoch ohne eine Bezeichnung der App. Nach dem Klick auf "Trotzdem neu starten" hing das Tablet und ich musste es abwürgen.

Das ist mir nun schon 3 mal innerhalb weniger Stunden Abstand beim Testen meines Programms passiert. Ich habe noch keinen sicheren Weg gefunden, das Verhalten zu reproduzieren. Meistens habe ich aus einer Listbox einfach hektisch Videos ausgewählt, welche beim Anwählen eines Listboxeintrags direkt ins Mediaelement geladen und abgespielt wurden. Irgendwann begann eben die Ruckelei. Ein Memoryleak scheint es nicht zu sein. Sobald ein Video durch ein anderes abgelöst wird wird auch der Speicher wieder freigegeben.

Was kann ich hier tun? V.a. die Tatsache, dass das ganze System noch nach Beendigung des Programms ruckelt deutet hier auf einen tiefergreifenden Bug.

Ich habe gerade mein Programm mal so eingestellt, dass nacheinander automatisch Videos abgespielt werden. Den ganzen Tag lang. Sollte das so zuverlässig durchlaufen wäre es ja ok, aber ein mulmiges Bauchgefühl habe ich dabei trotzdem. Das Programm, welches ich schreibe, ist nicht für mich alleine. Das muss später unter allen Umständen zuverlässig laufen.

//Edit: Nach einem Tag Test: Das Problem tritt seltener auf, aber ich muss davon ausgehen, es irgendwann zwangsläufig passiert. Was kann ich hier tun? Das macht mein ganzes Projekt zunichte.

lg

Thema: Bewegungs-Animation ruckelt während MediaElement ein Video lädt
Am im Forum: GUI: WPF und XAML

Hi,

ich habe hier ein kleines Windows 10 Tablet und möchte damit eine Art digitalen Bilderrahmen basteln, der auch Videos abspielen können soll. Hierfür verwende ich das MediaElement.

Die Videos laufen fullscreen. Vornedran wird immer unten immer ein Infotext mit weißer Schrift und halbtransparentem Farbverlauf im Hintergrund angezeigt. Dieser soll bei jedem Videowechsel zuvor mit einer Bewegungsanimation aus dem Bild fliegen und danach wieder einfliegen. Das funktioniert auch.

Wenn ich jedoch der Source des MediaElements eine neue Videodatei zuweise dauert es erst mal 2 Sekunden, bis dieses darin geladen ist. Wenn währenddessen noch eine Bewegungsanimation läuft, ruckelt diese extrem. Das sieht ziemlich unschön aus. Das MediaElement scheint beim Laden den UI-Thread unweigerlich zu blockieren.

Wie kann ich das verhindern?

lg, Paul

Thema: Controls als unbedienbare Dummys rendern/darstellen
Am im Forum: GUI: WPF und XAML

Danke :-) Das probier ich gleich mal!

Thema: Controls als unbedienbare Dummys rendern/darstellen
Am im Forum: GUI: WPF und XAML

Hi,

ich habe da eine Idee zu einer Anwendung, bei der ich u.A. Oberflächen deklarativ dynamisch erzeugen möchte. Für den Editor möchte ich Controls per Mauszeiger anordnen können. Dazu müssen diese Controls zwar gerendert werden aber dürfen natürlich keinerlei Interaktionen mit dem Mauszeiger eingehen, d.h. keine Events annehmen usw. Stattdessen soll die gesamte vom Control belegte Fläche reagieren, wenn ich das Control mit dem Mauszeiger in der Gegend rumschieben möchte.

Wie mache ich das? Ich habe schon gegoogelt aber nichts passendes gefunden.

Gibt es da einen speziellen Layoutcontainer für? Oder muss ich irgendwie ein transparentes Objekt über die Controls legen, welches alle Events des darunterliegenden Controls quasi abschirmt?

lg

Thema: Bildschirm auf Windows10 (1511) via Software ein- und ausschalten
Am im Forum: Rund um die Programmierung

Hi,

für mein Cloud-Bilderrahmen Projekt, welches ein Windows10 (1511) Tablet als Basis verwenden soll muss ich den Bildschirm per Software ein- und ausschalten können.

Hierfür habe ich ein Codeschnipsel im Internet gefunden, welches mir den Bildschirm ein- und wieder ausschaltet.


        [DllImport("user32.dll")]
        static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

        private void button1_Click(object sender, EventArgs e)
        {
            SendMessage(this.Handle, 0x0112, 0xF170, 2);
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            SendMessage(this.Handle, 0x0112, 0xF170, -1);
            timer1.Enabled = false;
        }

Das funktioniert auch, leider gibt es dabei noch ein paar Probleme. Wenn der Connected-Standby aktiv ist dann geht der Bildschirm aus und das Tablet geht ungewollt in den Connected-Standby über, was dazu führt, dass die Ausführung des Programms stoppt und das Tablet nicht wieder aufwacht. Da ich den Connected-Standby nicht unbedingt benötige, habe ich ihn einfach deaktiviert (über die Registry) und neu gestartet. Jetzt schaltet sich der Bildschirm nach der eingestellten Timerzeit zuverlässig auf. Jedoch direkt danach schaltet sich der Bildschirm wieder ab, ohne ersichtlichen Grund?! Zudem ist währenddessen der Touchscreen empfindlich geschaltet. Sobald man ihn berührt geht der Bildschirm wieder an. Das ist nicht unbedingt schlimm aber ich wünschte ich hätt eine Möglichkeit, das abzuschalten.

Hat jemand eine Idee was das soll und wie man das Problem lösen könnte?

Auf meinem Windows 7 Rechner funktioniert es wie geplant und der Bildschirm bleibt an.

Mein zweites Windows10Pro (1607) Tablet geht komischer weise nicht in den Connected Standby. Dafür begrüßt mich nach dem Wiedereinschalten des Bildschirms in gewohnter Manier der dämliche Sperrbildschirm und direkt danach schaltet sich auch hier der Bildschirm wieder von alleine aus.

Ich habe noch eine weitere Methode gefunden. Diese bewegt zum Aufwecken einfach kurz den Mauszeiger:

        [DllImport("user32.dll")]
        static extern void mouse_event(Int32 dwFlags, Int32 dx, Int32 dy, Int32 dwData, UIntPtr dwExtraInfo);

        private void timer1_Tick(object sender, EventArgs e)
        {
            mouse_event(0x0001, 0, 1, 0, UIntPtr.Zero);
            Thread.Sleep(40);
            mouse_event(0x0001, 0, -1, 0, UIntPtr.Zero);
            timer1.Enabled = false;
        }

Hier bei geht der Bildschirm nach dem Aufwecken nicht wieder von alleine aus. Allerdings ist dann der Mauszeiger sichtbar, und das soll auf Touchscreens auch nicht sein, dass der dann plötzlich dort auftaucht.

Es ist echt verzwickt. Ich frage mich, warum Windows einem da so Steine in den Weg legt

Thema: Einträge aus einer Liste nach vorgegebener Wahrscheinlichkeitsverteilung zufällig auswählen?
Am im Forum: Grundlagen von C#

Ich würde gerne eine Bildergallerie programmieren. Die anzuzeigenden Bilder sind in einer Liste gespeichert, ebenso ihr Aufnahmedatum.

Ich möchte nun alle paar Sekunden ein zufälliges Bild aus dieser Liste auswählen. Die Wahrscheinlichkeit soll jedoch um so höher sein, je neuer das Bild ist, bzw. um so geringer, je älter das Bild ist. Damit erreiche ich, dass vorwiegend die neueren Bilder angezeigt werden aber hin und wieder auch ältere mit dabei sind, so als Erinnerung quasi.

Die Wahrscheinlichkeitsverteilung für die Liste ist durch eine Funktion, welche ich mir schreiben werde, vorgegeben.

Wie programmiere ich die Zufallsauswahl mit dieser Wahrscheinlichkeitsverteilung?

Ich könnte mir vorstellen, dass ich jedem Listeneintrag je nach Wahrscheinlichkeit einen Zahlenbereich zuordne, der um so größer ist, je höher die nominelle Wahrscheinlichkeit des Listeneintrags ist. Dann erstelle ich eine gleichverteilte Zufallszahl, welche mir eine Zufallszahl von 0 bis {summe aller zahlenbereiche} liefert. Dann durchlaufe ich die Liste und schaue, in wessen Listeneintrags Zahlenbereich die Zufallszahl liegt.

z.B.
Bild1 p=50% z=[0...4]
Bild2 p=30% z=[5...7]
Bild3 p=20% z=[8...9]
Bild4 p=10% z=[10]

wenn ich nun eine Zufallszahl s aus dem bereich [0...10] erzeuge, z.B. s=6, dann durchlaufe ich die Liste, bis die Zufallszahl im entsprechenden Zahlenbereich liegt. In diesem Fall bei Bild2.

Besonders geschickt erscheint mir dieser Algorithmus allerdings noch nicht und ich muss mir überlegen, wie ich bei krummen Wahrscheinlichkeitswerten wie p=3,435% usw. den zugeordneten Wertebereich zusammenstelle.

Gibt es noch eine bessere Methode?

lg

Thema: Wie programmiere ich ein Tool was Fenster per Tastenkombination "nach vorne" holt?
Am im Forum: Rund um die Programmierung

Vor einigen Jahren habe ich folgendes Tool entdeckt:

http://always-on-top-maker.de.softonic.com/

Das ist ein kleines Tool, welches im Hintergrund aktiv ist und das Fenster, welches gearde den Fokus hat, bei Betätigen der Tastenkombination Strg+Alt+T auf Topmost=true setzt. Das ist super nützlich für Programme, die man gerne im Vordergrund hätte und die die Funktionalität nicht von selbst schon bereitstellen.

Ich würde so ein Tool gerne in C# nachcoden und mit ein paar Features versehen. Z.b. mehrere Programmfenster per Tastenkombination einzeln in den Vordergrund/Hintergrund schalten können oder oder ein zeitgesteuertes aktivieren der Topmost-Funktion, falls ich mal am Tablet bin und gerade keine Tastatur dran hab und daher die Tastenkombination nicht drücken kann.

Die Frage: wie funktioniert das Tool? Kann man einfach das Handle des gerade aktivierten Fensters raussuchen und es auf Topmost=true setzen? Wo finde ich informationen über die benötigten API-funktionen?

lg

Thema: 2D Grafikengine für Beamer-Lightshow-Software, welche Technologie?
Am im Forum: Grafik und Sound

Hi,

ich würde mir gerne eine kleine Software schreiben, mit der ich eine Beamer-Lightshow erzeugen kann. Dabei wird auf einem Beamer ein Bild ausgegeben, welches im Gegenlicht mit Effektnebel einen ähnlichen Effekt wie bei Showlasern erzeugt. Das sieht dann am Ende so aus:
https://www.youtube.com/watch?v=UL7ojzXzCew

Die projizierten Bildinhalte haben dann solchen Charakter: https://www.youtube.com/watch?v=Etu47aLCDh0 oder https://www.youtube.com/watch?v=3X0HbVWnZtA

Zunächst möchte ich feste Szenen einprogrammieren, später könnte das ganze dann sehr variabel gestaltbar werden mit Editor-Oberfläche, in der man sich die Szenen stückchenweise zusammenklicken oder gleich per skriptbasierter Programmierung erstellen kann.

Der Kern einer solchen Software ist natürlich eine Grafikengine, die Projektionsmuster für den Beamer erzeugt. Prinzipiell möchte ich in jeder Szene verschiedenfarbige grafische Formen erzeugen, einfarbig oder mit Farbverlauf. Kreise, Linien, Spiralen, Kurven, Punkte... gestrichelt, punktiert oder durchgezogen. diese möchte ich dann ein- und ausblenden, bewegen, rotieren, skalieren. Verschiedene Szenen sollen gleichzeitig laufen und langsam ineinander überblendet werden. Das ganze soll dabei flüssig auf bis zu 60fps laufen, möglichst sogar mit dem Wiederholrate des angeschlossenen Bildschirms synchron, aber auf jeden Fall absolut ruckelfrei.

Welche Technologie eignet sich hier? GDI erscheint mir etwas zu steif dafür. WPF? Oder eher etwas in Richtung OpenGL? Oder ist das mit dem XNA-Framework ganz einfach zu lösen?

Gruß, Paul

Thema: Windows Aero Theme in WPF Anwendung erzwingen
Am im Forum: GUI: WPF und XAML

Danke,

das hat geholfen!

Wo bekomme ich denn die Versionsnummer eigentlich her? Durch googeln habe ich nichts gefunden und die Microsoft Dokumentation sieht mir nach einem Dschjungel aus.

Ist das Windows 8 Theme dann in der Aero2.NormalColor.xaml?

Thema: Windows Aero Theme in WPF Anwendung erzwingen
Am im Forum: GUI: WPF und XAML

Hi,

um das Look&Feel meiner Anwendung auf Windows 7 Niveau beizubehalten (weil mir das einfach gefällt und ich der einzige Benutzer bin) habe ich in der App.xaml folgendes eingebunden:

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

Bei den Verweisen habe ich noch PresentationFramework.Aero hinzugefügt.

Alles gemäß folgender Informationsquelle: http://mrpmorris.blogspot.de/2008/05/using-vista-aero-theme-in-xp-wpf-apps.html

Im Debugger funktioniert das auch wie gewünscht. Wenn ich das Programm jedoch außerhalb von Visual Studio aufrufe gibt es beim Starten einen Fehler.
Fehler
Ein Ausnahmefehler des Typs "System.Windows.Markup.XamlParseException" ist in PresentationFramework.dll aufgetreten.

Zusätzliche Informationen: Beim Festlegen der Eigenschaft "System.Windows.ResourceDictionary.Source" wurde eine Ausnahme ausgelöst.

Was mache ich verkehrt?

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Also ich nenne das Diskussion Du argumentierst, ich argumentiere. Wenn meine Argumente Contra-MS sind dann ist das nun mal meine Argumentationsbasis.

Windows 10 ist in weiten bereichen über die Registry anpassbar? Interessant, dazu werd ich mich informieren (Hab ja Win10 bisher nur relativ kurz angetestet). Hast du da evtl. weiterführende Informationen parat?

Dass es über (fremd-)Themes anpassbar ist habe ich wohl leider auch bisher übersehen. Auch da forsche ich gleich mal nach. Geht es hier eigentlich um Themes, die von Microsoft und Schnittstellen des Betriebsystems offiziell unterstützt werden? Meine bisherigen Recherchen ließen nur auf Manipulation des OS durch Fremdsoftware schließen oder eben Themes, die außer Farbe- und Hintergrundbild, sprich, alles was ich auch per Hand so einstellen könnte. nichts neues bieten.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Nunja, Microsoft vertritt ja mit Windows 10 leider eine Friss-oder-Stirb Mentalität. Wo Windows XP noch mehrere grundsätzlich voneinander verschiedene Themes bot konnte man sich unter Windows 7 immerhin noch zwischen Classic, Basic und Aero Theme entscheiden. Seit Windows 8 gibt es allerdings keine Auswahlmöglichkeit und auch keine Anpassungsmöglichkeit mehr. Hier wird alles gleichgeschaltet. Aus Herstellersicht mag das natürlich vorteilhaft sein. Wenn alles gleich ist und alles gleich aussieht ist das für die Softwarepflege und den Support einfacher. Für den User bedeutet es aber eine Einschränkung, keine Wahlmöglichkeit mehr zu haben.

Ich philosophiere aber vermutlich gerade gegen einen Trend, gegen eine Modeerscheinung, die nicht nur Windows 10 betrifft.

Skeuomorphismus ist wohl eher Windows 7.

Zitat
Flat Design hat sich als Gegenstrom zum Skeuomorphismus entwickelt, bei dem reale Abbildungen (wie eine analoge Uhr, ein analoger Kompass) mit Papiertexturen und Farbverläufen eingesetzt werden, um reale Interaktionen im Interfacedesign nachzubilden. Auf diese Weise werden mögliche Interaktionen wie „einen Knopf drücken“ vom Benutzer sofort erkannt.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Zitat
Software ist dazu da, dass eine gewisse Aufgabe effizient erledigt wird.
Das ist immer noch der Grundgedanke. Und das System - also Windows - ist eine Plattform, auf dem diese Applikationen laufen.

Das mag prinzipiell richtig sein. Jedoch hat der Computer schon längst Einzug in unser Privatleben erhalten. Und in unserem Privatleben sind wir durchaus um Ästhetik bemüht. Sei es die Inneneinrichtung, die Möbel, die Gardinen, die Wandfarbe, das Auto.. alles ist ästhetisch, alles ist anpassbar. Wieso sollte man dann im Computer zugunsten von Einfachheit und Effizienz auf jegliche Ästhetik und Anpassbarkeit verzichten? Wäre es nicht effizienter, die Wandfarbe der Küche einfach weiß zu lassen anstatt sie weinrot zu streichen? Wäre es nicht günstiger, ein einfaches Rohr anstelle der wohlgeformten, zerbrechlichen, teuren Designer-Vase für die Blume zu nehmen? Wozu überhaupt eine Blume? Solange der PC für mich ein Alltagsgegenstand ist sehne ich mich auch nach der Möglichkeit, diesen nach meinen eigenen Vorstellungen zu gestalten. =)

Nun, ich finde auch die Effizienz von m Flat-Design von Windows 10 nicht gut. Ein nativer Button z.B. ändert seine Farbe beim MouseDown in einem nahezu nicht erkennbaren Maße. Meiner Meinung nach nicht gerade konsequent. Ich verstehe auch nicht, in wie fern die native Oberfläche von Windows 7 im Umkehrschluss "ineffizient" sein soll. Aus Sicht der Renderingperformance? Aus Sicht der Geschwindigkeit, mit der man Steuerelemente als solche erkennen sowie ihren Zustand beurteilen kann? Tut mir leid, gerade da, finde ich, schneidet das Flat-Design von Windows 10 mieserabel ab.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Habe dem ganzen mal etwas den Druck rausgekommen durch einige Editierungen
Der Umstieg auf Windows 10 wird in ein paar Jahren zwangsläufig kommen, denn der Support für Windows 7 endet irgendwann. Linux/Mac sind natürlich keine direkten Alternativen. Das Design kann man in Windows 10 leider weniger denn je anpassen. Hier hat Microsoft konsequent sämtliche Einstellungsmöglichkeiten entfernt.

Interessant sind vor allem die Stimmen der Befürworter für mich. Gewähren neue Einblicke in neue Ansichtsweisen, auch wenn man nicht immer gleichermaßen betroffen ist.

Ich z.B. fand den "Aero-Quatsch" schon immer sehr ansprechend. Ein derart Leistungsfähiger Computer kann ruhig auch einen gewissen Sinn für Ästhetik ansprechen, sowohl Design als auch Glass-Effekt fand ich in Windows 7 hervorragend umgesetzt und ich verneige mich auch heute noch vor dieser Leistung. In Windows 8/10 wurde dieses "Feature" dann wieder komplett entfernt. Dem Windows 8 hätte ich wohl noch am ehesten "Ästhetik durch Einfachheit" zugesprochen, Win10 hingegen sieht für mich einfach schlecht und lieblos umgesetzt aus (ich rede hier vor allem vom nativen Look der Steuerelemente in den Anwendungen, wobei sich das ja nahezu durch das gesamte OS durchzieht).

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Nunja.. es wirkt zugegeben erst einmal wie Gemecker. Allerdings möchte ich damit eine kleine Diskussion anstoßen und erfahren, wie ihr das so seht. Vielleicht stehe ich ja nicht alleine mit meiner Ansicht.

Gegen Flat- oder Material-Design habe ich grundsätzlich nichts. Im Gegenteil, ich finde das bei Windows 8 sehr sehr chic umgesetzt. Windows 10 übertreibt es hierdoch deutlich imho.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Windows 10 führt dieses Konzept fort, aber mit dem Dampfhammer. Farbverläufe wurden durch einfache Farben ersetzt. Ein plumpes 8-bit grau, wie man es von Windows 3.11 kennt. Buttons, die den Fokus haben bekommen einen 2-Pixel Rand, was dann schon aufdringlich dick ist (sieht man jetzt hier im Beispiel nicht). Inaktive Steuerelemente werden plump dunkelgrau, heftig. Die Umrandung des gerade aktiven Steuerelements ist fast schon knallblau, jedenfalls kontrastreicher als bei Windows 8. Von mir Erhält der verantwortliche Designer den Negativ-Award für die liebloseste Umsetzung einer grafischen Oberfläche, die ich mir je erahnt haben könnte.

Werden wir uns für den Rest der Zeit, in der Windows 10 am Markt sein wird (was ja laut MS quasi ewig sein soll) daran gewöhnen müssen, dass Programme ohne weitere Eingriffe ins Design eben wieder wie im vorletzten Jahrzehnt aussehen?

Wie seht ihr das? Findet ihr das hübsch, ist es nur Gewöhnungssache?
WPF-Anwendungen sehen auf Windows 10 übrigens erst mal genau so aus. Ich sag's noch mal. Gegen Flat-Design habe ich prinzipiell nichts, im Gegenteil. Aber diese Umsetzung? Ohje..

Tut mir leid, dass ich die Threadstruktur gleich mit den 3 Riesenbildern so verunstaltet habe. War aber mit der Forensoftware ohne weitere Hilfsmittel nicht besser zu lösen. Nächstes mal werde ich wohl extern hosten.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Jetzt Windows 8.

Windows 8 führt erstmals den Flat-Style ein. Ein leichter, dezenter Farbverlauf hebt die Steuerelemente noch vom kahlen Hintergrund ab. Die Farbe ist angenehm, Umrandungen sind relativ dezent. Mir gefällt das insgesamt sogar. Nichts wirkt aufdringlich. Ein minimalistisches aber legitimes Design.

Thema: Windows 10, übertriebene Umsetzung des Flat-Designs?
Am im Forum: Smalltalk

Hi. Ich habe einen groll gegen Windows 10, denn unter diesem System sehen meine Windows Forms oder WPF Applikationen aufgrund der übertriebenen Umsetzung des Flat-Designs ggü. Win7 oder 8 meiner Ansicht nach sehr hässlich und plump aus.

Ich habe es in einer VM laufen und zum Testen mal ein paar meiner Tools darauf angetestet. Der erste Eindruck erinnert direkt an Windows 3.11.

Buttons sind keine Buttons mehr sondern einfach nur noch einfarbig 8-bit-grau-gefüllte Rechtecke mit Pixelborder ohne erkennbare Farbänderung beim Klicken. Keine Farbverläufe, keine runden Ecken, kein Schatten, keine Hover-Effekte. Nichts. Keine Transparenzeffekte mehr. Kein Aero-Glass. Alles einfarbig und langweilig. Dieses Design ist nicht simpel, es ist plump. Meiner Meinung nach fallen wir damit wieder auf Windows 95 Niveau zurück.

Im Folgenden seht ihr ein Vergleich eines Windows Forms Programms unter Windows 7, 8 und 10.

Hier mal ein Beispiel unter Windows 7. Wie gewohnt, alles relativ hübsch ausgeschmückt. Kann einem gefallen, muss natürlich nicht. Auf jeden fall sind hier verschiedene Steuerelemente klar als solche erkennbar und egal in welchem Zustand sie sich befinden, sie sehen nicht aufdringlich aus. Hat alles einen relativ natürlichen Look.

Thema: Datei- und Ordnersymbole in Form rendern, so dass diese genau so funktionieren wie im Explorer?
Am im Forum: GUI: Windows-Forms

Hi,

ich würde mir gerne ein Tool für mich selbst schreiben, welches verschiedene Dateien und Ordner überwacht. Bei bestimmten Ereignissen sollen Dateien und Ordner erstellt bzw. verschoben werden. Darüber soll mich das Tool informieren und mir möglichst einfach einen schnellen Zugang zu diesen Dateien verschaffen. Ein Bordmittel wäre jetzt, einfach ein Explorerfenster zum Pfad der sich dort befindlichen Dateien zu öffnen, wo ich diese dann als Datei- bzw. Ordnersymbole sehen und weiterverarbeiten kann.

Gibt es aber nicht auch eine Möglichkeit, diese Datei- und Ordnersymbole einfach in einem Form zu rendern, aber so, dass ich diese ganz normal handhaben kann, wie im Explorer. Ich möchte sie markieren können, einen Auswahlrahmen drum rum ziehen können, per rechtsklick soll das entsprechende Kontextmenü erscheinen und wenn ich sie per Drag'n'Drop aus der Form herausziehe sollen sie sich an die entsprechende Stelle kopieren lassen. Quasi so wie als wäre es ein Ausschnitt eines Explorer-Fensters.

In Listenform habe ich das bei diversen Tools schon gesehen. Geht so etwas auch mit Bordmitteln oder muss man da tiefer bzw. aufwändiger ins System einsteigen?

Danke!
mfg, Paul

Thema: Daten direkt auf Desktop visualisieren
Am im Forum: GUI: Windows-Forms

Auch gar nicht übel Aber ich preferiere die Lösung mit dem Desktop. Das Tool ist übrigens nur für mich persönlich, für niemanden sonst. Ansonsten würde ich dir recht geben und eine solch unkonventionelle Lösung nicht aufs Publikum loslassen.

Thema: Daten direkt auf Desktop visualisieren
Am im Forum: GUI: Windows-Forms

Ohje,

die Essenz aus diesen Beiträgen ist dann wohl, dass es schlichtweg keine saubere und mit vertretbarem Aufwand erreichbare Möglichkeit gibt, auf den Desktop zu zeichnen?

Schade.

Der Desktop wäre der ideale Ort für meine Daten, denn ich schaue immer mal wieder automatisch dort vorbei, d.h. die Daten werde ich automatisch irgendwann zu Gesicht kriegen. Es geht nicht darum, die Daten dauerhaft im Blick zu behalten sondern immer mal wieder beiläufig. Aber ohne dafür ständig ein Fenster aufrufen zu müssen, geschweigedenn einen ganzen Bildschirm dafür zu verbraten.

Auf CodeProject habe ich gerade ein Projekt gefunden, welches Schneeflocken auf den Desktop zeichnet. Die befinden sich zwar vor den Desktopicons aber bleiben schön brav auf Desktop-Ebene. Das wäre schon mal was!

Thema: Daten direkt auf Desktop visualisieren
Am im Forum: GUI: Windows-Forms

Hi,

ich würde gerne bestimmte Daten direkt auf meinem Desktop visualisieren, so dass ich sie dort permanent im Blick habe. Die sollen frei designed werden können und in echtzeit, minimal sekündlich, aktualisiert werden können. Zunächst könnte es sich hierbei erst mal um simplen Text handeln. Die Visualisierung soll auf gleicher Ebene mit dem Desktophintergrundbild liegen und nicht anklickbar sein. Wichtig ist, dass sie vom Desktop aus immer zu sehen ist und niemals verschwindet. Auch nicht, wenn man die "Desktop-Anzeigen" Funktion von Windows nutzt.

Welche Möglichkeiten habe ich mit C# hier? Ich hatte in der Vergangenheit hierzu schon verschiedene Threads gelesen aber eine endgültige Lösung hat sich nie ergeben. Eventuell ergibt sich in einer neuen Diskussionsrunde hier etwas.

lg

Thema: VS2010, Zugriff auf nicht initialisierte Liste erzeugt keinen Laufzeitfehler im Debugger?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

danke soweit für die Hilfe! Das muss aber irgendwie projektspezifisch sein. Wenn ich ein neues Projekt erstelle und dort eine ähnliche Situation hervorrufe werden die Exceptions behandelt und das Programm bricht ab. Ich kann mich auch nicht erinnern da je was umgestellt zu haben, zumal die VS2010 Installation noch recht jungfräulich ist

Habe grade den Code mal in ein neues Projekt übertragen, gleiches Verhalten, es muss also an Code/VS-Einstellungen liegen. Aber ich finde die Einstellung nirgendwo

Thema: VS2010, Zugriff auf nicht initialisierte Liste erzeugt keinen Laufzeitfehler im Debugger?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

ich habe hier ein komisches Problem in meinem Projekt. Mir fiel auf, dass die Bearbeitung des Eventhandlers irgendwo zwischendrin offenbar einfach aufhörte. Mittlerweile ist mir auch klar, was dazu führt, nämlich eine nicht initialisierte Liste. Also habe ich mal alles unnötige aus dem Code entfernt und ihn aufs wesentliche reduziert um den Fehler besser nachzustellen.

  public partial class Form1 : Form
    {
        class DesktopCleanerDataset
        {
            public List<string> ignoredExtensions;
            public List<string> ignoredElements;

            // Initialisierung
            public DesktopCleanerDataset()
            {
                ignoredExtensions = new List<string>();
                //ignoredElements = new List<string>();
            }
        }

        DesktopCleanerDataset data;


        public Form1()
        {
            InitializeComponent();
            data = new DesktopCleanerDataset();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            Console.WriteLine("#1");
            data.ignoredExtensions.Clear();
            Console.WriteLine("#2");
            data.ignoredElements.Clear();
            Console.WriteLine("#3");
        }
    }

data.ignoredElements.Clear(); kann nicht funktionieren, da ich die Initialisierung oben auskommentiert habe.

Dennoch erzeugt das Programm im Debug-Modus von Visual C# Express 2010 keinen Laufzeitfehler oder sonstiges. In der Console erscheint nur

#1
#2

und das wars. Das Programm arbeitet ganz normal weiter aber die Bearbeitung des Eventhandlers hört ab dem Fehler einfach auf.

Hab ich da irgendetwas verstellt oder warum krieg ich hier keinen Laufzeitfehler ausgegeben?

Thema: Programmdaten speichern, wo & wie? serialisieren?
Am im Forum: Rund um die Programmierung

Hi,

sicher gabs das Thema schon öfters aber so die gewünschte Antwort hab ich jetzt nicht gefunden.

Es geht darum, dass ich in diversen Tools, die ich mir selber schreibe, gerne Daten abspeichern und beim nächsten Aufruf wieder zur Verfügung hätte. Das können unterschiedlichste Datentypen/Objekte sein. Klar, das erste was einem dazu einfällt ist Serialisierung. Aber da gehen die Fragen los.

Wie strukturiere ich diese Daten?
Schreib ich mir einfach eine Lade- und eine Speichermethode in denen die entsprechenden Variablen dann alle zusammengesammelt und serialisiert/deserialisiert werden? Find ich nicht sehr geschickt denn jedes mal wenn neue zu speichernde Variablen hinzukommen muss ich beide Methoden anpassen.
Schreibe ich mir eine Struktur oder eine Klasse, die als Container für sämtliche zu speichernde Variablen dient? Dann muss ich sie nur noch ein mal instanziieren und dann das Objekt serialisieren und muss die Lade- und Speichermethode nicht jedes mal anpassen. Bei einer Klasse kann ich im Konstruktor sogar noch eine Initialisierung vornehmen, sollte das Objekt nicht deserialisiert werden können und neu erstellt werden müssen (z.B. beim ersten Programmstart).
Hat aber die Unschönheit an sich, dass ich alle zu speichernden Daten nur über den Objektnamen ansprechen kann.

Oder ist Serialisierung in eine Datei doch nicht das Optimum?

Wo sollte die Datei, in die man serialisiert überhaupt abgespeichert werden?
Ich hab mir jetzt mal Environment.SpecialFolder.LocalApplicationData ausgesucht.


Wie macht das der Profi?