Syncfusion Metro Studio
Jednym z problemów tworzenia interfejsów użytkownika od początku istnienia platformy Windows Phone było odszukanie (ewentualnie narysowanie) odpowiednich ikon zgodnych z zaleceniami Mango.
Choć wielu grafików już przygotowało własne zestawy ikon, to często dostarczany przez nich format albo rozmiar wymuszał edycję w Gimpie albo innym programie graficzny.
Wydaje się jednak iż koniec problemów dzięki oprogramowaniu od Syncfusion. Program nazywa się Syncfusion Metro Studio i zawiera nieprzebrane ilości ikon, które można wykorzystywać w aplikacjach. Każdą ikonę można wygenerować w kilku formatach, rozmiarach i dowolnej kolorystyce. Polecam bo to jedno z bardziej przydatnych narzędzi jakie ostatnio znalazłem w sieci.
Użyteczne rozszerzenia 4/n!
Konwersja koloru “z” oraz “do” Int32 oraz konwersja z zapisu szesnastkowego.
Dwa pierwsze rozszerzenia są przydatne przy konwersji kolorów z WriteableBitmap.
// metody
public static Color ToColor(this int value)
{
return new Color()
{
A = (byte)(value >> 24),
R = (byte)(value >> 16),
G = (byte)(value >> 8),
B = (byte)(value)
};
}
public static int ToInt32(this Color c)
{
return (int)(c.A << 24) + (int)(c.R << 16) + (int)(c.G <<8) + (int)c.B;
}
public static Color ToColor(this uint argb)
{
return Color.FromArgb(
(byte)((argb & 0xff000000) >> 24),
(byte)((argb & 0xff0000) >> 16),
(byte)((argb & 0xff00) >> 8),
(byte)(argb & 0xff));
}
// sposoby użycia
Colors.Black.ToInt32();
255.ToColor();
0xFF339933.ToColor();
Użyteczne rozszerzenia 2/n!
W dzisiejszej części proste przełączanie widoczności UIElement w Silverlight:
// metoda
public static void ToggleVisibility(this UIElement uie)
{
uie.Visibility = (uie.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible);
}
// sposób użycia
Button.ToggleVisibility();
Surface Blip – prezentacja
Nagranie prezentujące użycie Surface Blip na emulatorze. Miłego oglądania
Surface Blip 1.0 – wstęp do programowania Microsoft Surface
Po opublikowaniu Microsoft Surface SDK postanowiłem się z nim zaznajomić i popełnić jakąś aplikację (zanim zaczniesz instalować SDK pamiętaj, że wymagane jest zainstalowane XNA). Po obejrzeniu aplikacji do obsługi Twittera – Surface Twitter oczywisty wybór padł znowu na Blipa. Ale po kolei…
Po instalacji SDK w Visual Studio pojawiła się nowa gałąź w Visual C# o nazwie Surface. Do wyboru mamy trzy rodzaje projektów:
- Surface Application (WPF)
- Surface Application (XNA)
- Surface Application (XNA Game Studio 3.0)

Jako że nie znam XNA wybór padł na WPF skoro większość z nas już go zna. Co jest ciekawe sama implementacja Microsoft Surface w WPF nie różni się znacząco od standardowego WPF-a. Samo SDK dodaje nam kilkanaście nowych kontrolek a cała magia dzieje się poza nami
Najważniejsza z naszego punktu widzenia kontrolka to ScatterView na którym są osadzane poszczególne interaktywne elementy. Dodatkowo SDK udostępnia większość implementacji standardowych kontrolek, których nazwa jest rozszerzona o przedrostek Surface. Dla przykładu Button w SDK nazywa się SurfaceButton itd.
Sama aplikacja nie jest skomplikowana, żeby nie powiedzieć trywialna
Mamy ekran logowania a po nim ładuje ostatnie statusy z kokpitu plus okno do dodawania nowych wpisów. Nie chcę się wgłębiać w implementację bo widać ją na kodzie źródłowym. Natomiast chciałbym wskazać kilka elementów na które warto zwrócić uwagę:
- Po utworzeniu projektu template tworzy katalog Resources a w nim pliki AppIcon.png i AppIconPreview.png – są to ikony naszego projektu na które wskazują ścieżki z pliku definicji o konstrukcji [Nazwa naszego projektu].xml.
- W pliku definicji znajdują się ścieżki do ikon, aplikacji (exe) oraz kilka dodatkowych elementów.
- Z punktu widzenia programisty i Microsoft Surface ważne jest to iż programy nie muszą być zainstalowane, ponieważ Surface odczytuje pliki definicji z katalogu C:\ProgramData\Microsoft\Surface\Programs i na ich podstawie wyświetla dostępne aplikacje (położenie exe i ikon).
- Program (w Visual Studio) uruchamiamy standardowo klawiszem F5, ale symulacja nie obsługuje wielu aktywnych punktów; przydatne tylko we wczesnym testowaniu aplikacji, plusem jest szybki czas ładowania.
- W przypadku gdy chcemy w pełni testować aplikację ze ścieżki Start -> Microsoft Surface SDK 1.0 SP1 -> Tools uruchamiamy Surface Simulator jako administrator i uzyskujemy dostęp do pełnego symulatora włączając odczyt plików definicji z C:\ProgramData\Microsoft\Surface\Programs oraz symulację wielu aktywnych punktów (Visual Studio samo wykryje włączony symulator i odpali na nim nasz debugowany program).
- Co do samej implementacji “rozciąganych” kontrolek to mamy dostęp do kontrolki ScatterViewItem która pozwala na ustalenie minimalnych i maksymalnych rozmiarów.
- W przypadku gdy chcemy uzyskać standardowe skalowanie kontrolek to sugeruje używać Viewbox-a który będzie ładnie zoomował np osadzone zdjęcie.
- W przypadku gdy chcemy uzyskać bardziej skomplikowane skalowanie, np tak aby tylko jeden element się powiększał w miarę rozciągania – to wtedy sugeruje użyć Grid-a z ustawionymi kolumanmi / wierszami na autodopasowanie.
Download:
– SurfaceBlip – źródła
– SurfaceBlip – instalator
Galeria screenów aplikacji:
![]() |
![]() |
![]() |
![]() |
![]() |







