Laptop oder Tablet? Erkennen und richtig Handeln!

Durch Windows 8 ist eine ganz neue Form von „mobilen“ Anwendungen auf den Markt gekommen. Die Windows 8 Apps. Ebenso kamen Systeme dazu, die sowohl Tablet als auch Laptop sind und ebenso welche, die beides sein und sich zur Laufzeit ändern können. Passend dazu kamen auch relativ zeitnah die ersten Anwendungen, die auf dieses Verhalten entsprechend reagieren und sich mit jeweils einer anderen angepassten Oberfläche zur Schau stellen.

Die hierfür notwendige API gibt es leider bei Intel nur für C++. Aber mithilfe von P/Invoke kann dies auch ganz einfach mit C# und WPF verwendet werden.

Weiterlesen

Einfaches Model-View-ViewModel nutzen unter WPF/C#

Inzwischen gibt es einige Frameworks für MVVM, besonders in Verbindung mit WPF und C#. Besonders einfach möglich ist dies mittels Cinch, welches wiederum MEFedMVVM nutzt. Die Links zu diesen beiden Projekten befinden sich am Ende dieses Posts. Diese Frameworks sind zum Einen kostenlos nutzbar und zum Anderen sehr gut dokumentiert. Außerdem steht eine entsprechend große Community hinter diesen Frameworks, die bei Fragen sehr gut unterstützt (natürlich sollte man hier am Besten Englisch beherrschen, aber dies ist in der Softwareentwicklung so oder so Grundvoraussetzung). Aber was genau sind dies für Frameworks?  Weiterlesen

Simpler SplashScreen in WPF/C#

Um unter WPF/C# einen simplen SplashScreen anzuzeigen, benötigt es keinerlei Zusätze, außer einer Grafik die angezeigt werden soll. Es ist nicht einmal erforderlich ein eigenes Fenster zu erstellen – insofern keine komplexen Sachen wie Fortschrittsanzeige etc. gewünscht sind (hierfür kann folgendes verwendet werden: http://www.codeproject.com/Articles/38291/Implement-Splash-Screen-with-WPF). Für eine einfache Anzeige hingegen benötigt es nur eine Referenz auf den „System.Windows“ Namespace und schon kann in der „OnStartup“-Methode der App.xaml.cs ein SplashScreen angezeigt werden.

SplashScreen splash = new SplashScreen("SplashScreenImagePath.Type");
splash.Show(true);

Dies genügt bereits, um den SplashScreen anzeigen zu können. Das „true“ in der „Show“-Methode sorgt hierbei für ein Auto-Close, sobald das Hauptfenster angezeigt wird, andernfalls kann mittels „Close“-Methode das schließen ausgelöst werden.

WPF Lokalisierung

Eine häufige Anforderung im Berufsalltag ist es eine Anwendung in mehreren Sprachen anzufertigen. Während C# / VB hierfür sehr simpel auf RESX-Dateien zugreifen kann, ist vielen nicht klar, dass WPF dies ebenfalls beherrscht. Wie das ganze in C# funktioniert, kann älteren Blog-Beiträgen zur SmallMVVM-Reihe entnommen werden, da dies dort bereits Anwendung gefunden hat. Die RESX-Dateien werden hierfür genauso angelegt wie bereits unter C#, d.h. „Resources.de-DE.resx“ für z.B. Deutsch und „Resources.resx“ für die Standardwerte. Sollte der Eintrag in der speziellen Sprache nicht vorhanden sein, wird standardmäßig der aus der normalen Ressource verwendet, also aus der Standard-Datei.

Um das ganze nun in WPF nutzen zu können, muss zunächst ein „xmlns“, ein WPF-Using, angelegt werden. Dieser sieht wie folgt aus:

xmlns:resx="clr-namespace:<DefaultNamespaceOfProject>.Properties"

Anschließend können die Controls ein normales Binding auf Werten aus der genannten Resourcedatei durchführen. Hier sollte beachtet werden, dass dies nur String-Texte sind – Lokalisierungen eben. Das Ganze ist nicht für Einstellungen zu verwenden, dafür gibt es eigene Mechanismen.

<Label Content="{x:Static resx:Resources.<NameOfYourResource>}" />