HTML Hex Color Codes in Windows 8-Apps mit C# verwenden

Grundfarben kann man als SolidColorBrush mit C# in Windows 8-Apps ganz einfach setzen:

SolidColorBrush brush = new SolidColorBrush(Windows.UI.Colors.Green); //  #008000 or #FF008000 (with alpha)

Möchte man jedoch den Farbwert selbst definieren, muss man etwas tiefer in die Trickkiste greifen:

SolidColorBrush brush = new SolidColorBrush(Color.FromArgb(255, 0, 128, 0)); // in Hex: FF,00,80,00

Möchte man HTML Hex Color Codes verwenden, so ist die Implementierung einer eigenen Klasse notwendig.
HTML Hex Color Codes in Windows 8-Apps mit C# verwenden weiterlesen

Internetverbindung in Windows 8-App überprüfen

Hier ein kleines Beispiel, das zeigt, wie man in einer Windows 8-App mit C# überprüfen kann, ob das System gerade Internetzugriff hat oder nicht:

Methode: CheckIfUserIsOnline

1
2
3
4
5
6
7
8
9
10
11
12
private bool CheckIfUserIsOnline()
{
  bool isOnline = false;
  ConnectionProfile profile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
  if (profile != null)
  {
    NetworkConnectivityLevel connectivityLevel = profile.GetNetworkConnectivityLevel();
    if (connectivityLevel == NetworkConnectivityLevel.InternetAccess)
      isOnline = true;
  }
  return isOnline;
}

Internetverbindung in Windows 8-App überprüfen weiterlesen

XAML Data Binding mit C# für Windows 8-Apps

Das Data Binding in Windows 8-Apps funktioniert so wie das [post id=“3810″]Data Binding in Windows Phone 7[/post]. Im Schnelldurchlauf geht das wie folgt:

  1. Eigene Klasse erstellen
  2. Gewünschtes XAML-Element mit Binding-Eigenschaften ausrüsten
  3. Instanzen der Klasse erzeugen
  4. Instanzen in einer Liste verwalten
  5. Liste dem DataContext des XAML-Elementes zuweisen

Ein kleines Code-Beispiel dazu.
XAML Data Binding mit C# für Windows 8-Apps weiterlesen

App-Einstellungen in der Charm Bar mit C# hinzufügen

Applikations-Einstellungen einer Windows Store-App können in der Charm Bar integriert werden. Der Benutzer braucht dann in der App nur die „Windowstaste + C“ drücken und kann dann im Menüpunkt „Einstellungen“ die für die App definierten Settings einsehen.

Wie man solche Settings mit C# hinzufügt, möchte ich in einem kleinen Code-Beispiel zeigen.
App-Einstellungen in der Charm Bar mit C# hinzufügen weiterlesen

HTTP ETag in Windows 8-Apps verwenden

Das ETag ist ein HTTP Header-Feld, das eingesetzt werden kann, um das erneute Laden von nicht veränderten Dateien zu vermeiden.

Fallbeispiel:

Man lädt Daten für eine App aus einer XML-Datei von einem Webserver. Bei jedem Start der App möchte man garantieren, dass die aktuellen Daten vorhanden sind. Das geht natürlich nur, wenn bei jedem Start der App die XML-Datei auf dem Server abgerufen -und auf Veränderungen überprüft wird. Dazu müsste man aber erst die komplette Datei herunterladen und parsen. Wenn sich die Datei auf dem Server nicht geändert hat, ist der immer wiederkehrende Vorgang des Herunterladens und Parsens überflüssig. Um diesen Überfluss zu vermeiden, kann man das ETag einsetzen.

Durch das ETag wird mitgeteilt, ob sich die Ressource verändert hat. Ist dies der Fall, verändert sich auch das ETag. Man muss also nur das ETag zwischenspeichern und bei jedem Start überprüfen. Hat sich das ETag verändert, wird die XML-Datei heruntergeladen und geparst. Hat sich das ETag nicht verändert, gibt es eine HttpRequestException mit der Information: „304 (Not Modified)“ und man weiß, dass man auf dem aktuellsten Stand ist.
HTTP ETag in Windows 8-Apps verwenden weiterlesen

Lambda-Ausdrücke in C#

Wer einen Event Handler für einen Button hinzufügen möchte, der kennt aus C# sicherlich folgende Schreibweise:

1
2
3
4
5
6
7
8
9
10
private void buttonClick(object sender, RoutedEventArgs events)
{
  // Event handling
}
 
public MyPage()
{
  InitializeComponent();
  backButton.Click += new RoutedEventHandler(buttonClick);
}

Man kann das Hinzufügen eines Event Handlers mit einem Lamba-Ausdruck aber auch noch verkürzen:

1
2
3
4
5
6
7
8
public MyPage()
{
  InitializeComponent();
  backButton.Click += (sender, events) =>
  {
    // Event handling
  };
}