Krzysztof Mossakowski
Programowanie w środowisku Windows
2009 - Zadania
Przeglądarka obrazków w WPF
Elementy okna:
Drzewko dysków i katalogów
wypełniane "na żądanie", tzn. podkatalogi są wczytywane dopiero po rozwinięciu węzła katalogu.
Lista obrazków znalezionych w aktualnie wybranym w drzewku katalogu.
Splitter
pomiędzy drzewkiem i listą obrazków umożliwiający modyfikację szerokości drzewka
Slider
sterujący wielkością pokazywanych obrazków.
Pozycje i rozmiary elementów składowych:
Górny pasek okna zajęty wyłącznie przez
slider
o stałej wysokości i szerokości dosunięty zawsze do prawej krawędzi okna.
Drzewko katalogów i lista obrazków zawsze wyrównane w pionie. Modyfikacja wysokości okna zmienia wysokość obu tych elementów.
Zmiana szerokości okna zmienia szerokość listy obrazków, nie zmienia natomiast szerokości drzewka katalogów.
Szczegóły estetyczne, o które trzeba samemu zadbać:
Obramowanie drzewka katalogów i listy obrazków:
Prostokąt z zaokrąglonymi rogami rysowany pędzlem o grubości jednego piksela.
Niebieski prostokąt rysowany z efektem rozmycia.
Obrazki:
Prostokąt z cieniem jako tło jednej pozycji z listy obrazków.
W dolnej części prostokąta podpis - nazwa pliku i rozmiar obrazka w pikselach.
Pozostała część prostokąta wypełniona obrazkiem przeskalowanym z zachowaniem stosunku szerokości do wysokości.
Pod wybranym (klikniętym) obrazkiem szary prostokąt.
Splitter
:
Szczególny wygląd (p. rysunki powyżej).
Wskazówki:
Drzewko katalogów:
TreeView
TreeViewItem.Expanded
DirectoryInfo
Lista obrazków:
DirectoryInfo.GetFiles, FileInfo
ObservableCollection
ScrollViewer, ListBox
Splitter
GridSplitter
ResizeBehavior
Style:
dla GroupBox, aby zapewnić jednakowe obramowanie drzewka katalogów i listy obrazków,
dla TreeView, aby pozbyć się dodatkowego obramowania,
dla GridSplitter, aby zapewnić szczególny wygląd
dla Label, aby zapewnić jednakową czcionkę bez względu na ustawienia systemu,
dla ListBoxItem, aby zapewnić odpowiedni wygląd jednej pozycji z listy obrazków,
dla ListBox, aby zapewnić ustawienia pozycji z listy obrazków.