20maj/110Zaginiona metoda Main()? Tworząc aplikację WPF czasami zachodzi potrzeba napisania własnej metody Main(). Przeglądając pliki znajdujące się w solucji można natknąć się pliki *.xaml i powiązanie z nimi *.xaml.cs oraz pliki kodu *.cs. Dopóki nie trzeba zrobić czegoś nie standardowego to często nie ma potrzeby, aby zagłębiać się w różnego rodzaju mechanizmy. Takim mechanizmem może być start aplikacji WPF. Ostatnio potrzebowałem dodać własną metodę Main(). Sądziłem, że będzie to proste – nowa klasa ...
W poprzedniej i zarazem pierwszej części tutoriala do WPF, powiedzieliśmy sobie co nieco na temat samego WPF, zawartego w nim języka XAML oraz menadżerów układów. Dziś przyszła kolej na kontrolki, bez których w GUI, nie było prawdopodobnie by niczego. Co należy rozumieć jako kontrolkę? Są to wszystkie buttony, gridy, listy, comboboxy itp. itd. Każda z kontrolek, posiada pewien wspólny zestaw właściwości, które bierze się z reguł dziedziczenia zawartych w WPFie (patrz akapit o drzewach). Oprócz tego, kon...
Do grona rzeczy, które wyróżniają aplikację, już na pierwszy rzut oka, najczęściej z pewnością możemy zaliczyć jej GUI, czyli innymi słowy wartstwę prezentacji. W .Necie, praktycznie od zawsze, GUI tworzyło się za pomocą dość wygodnych Windows Forms, które za pomocą metody Drag & Drop (Przeciągnij i upuść) pozwalały na szybkie tworzenie wizualnego obszaru naszej aplikacji, często bez napisania nawet jednej linijki kodu. Istotą takiego podejścia, było użycie absolutnego pozycjonowania elementów, względem ...
WPF: Bindowanie Enum'a do ComboBox'akwi 112011 Podczas moich ostatnich zmagań z WPFem trafiłem na ciekawy problem. Chodzi o bindowanie typu Enum do kontrolki ComboBox. Czyli w combo ma pojawiać się lista dostępnych wartości enum'a, a po wybraniu jednej z nich ma uaktualnić się podpięta do comboboxa właściowość ViewModelu. Dodatkowo sprawa komplikuje się gdy nazwy poszczególnych wartości enum'a są niezbyt czytelne dla śmiertelnego użytkownika programu (np. zamiast ładnej opisowej nazwy "To jest pierwsza s...
Czasami zachodzi potrzeba "ręcznego" pozycjonowania okna w aplikacji WPF. Sprawa jest prosta i sprowadza się do odpowiedniego ustawienia właściwości Left oraz Top. Jeśli chcemy aby pozycja okna dziecka zależała od położenia rodzica to możemy odwołać się do rodzica przez właściwość Owner i napisać taki kod jak poniżej. Kod ten powoduje przesunięcie okno dziecka o 50 jednostek w prawo względem lewej krawędzi okna rodzica. ... myWindow.Left = myWindow.Owner.Left + 50; ... Nic prostrzego. ...
Pierwsza część serii postów opisujących implementacje przykładowych konwerterów wartości, które mogą się przydać w różnych projektach.
Silverlight 5026 dni, 3 godziny, 55 minut temu 104 źrodło rozwiń
Podczas projektowania interfejsu w aplikacji WPF/Silverlight, zdarzają się sytuacje, w których jesteśmy zmuszeni do poszukiwania rozwiązań, które umożliwią wyświetlenie kontrolek bez burzenia przyjętych wcześniej konwencji. Czasami jest trudno, lecz dzięki elastyczności jaką oferuje technologia WPF/Silverlight możemy zmieniać interfejs w bardzo szerokim zakresie bez konieczności implementowania własnych kontrolek. Istnieje kilka kontrolek, które mogłyby zostać wykorzystane w danym przykładzie (np. C...
Dlaczego lubię kontener DockPanel? Ponieważ dobrze (intuicyjnie) współpracuje z kontrolką ScrollViewer, która dostarcza pionowych i poziomych pasków przewijania. Załóżmy, że główne okno naszej aplikacji zawiera listę (kontrolka ListView) z kilkuset wierszami. Wierszy jest na tyle dużo, że w danym momencie na ekranie widoczna jest tylko część z nich. Aby użytkownik mógł przewijać listę i zobaczyć wszystkie wiersze używamy kontrolki ScrollViewer ScrollViewer zachowa się jednak inaczej w...
Osoby, które tworzą aplikacje w WPF-ie i/lub Silverlight-cie na pewno spędzają wiele godzin edytując kod XAML. Wsparcie w Visual Studio 2010 względem 2008 poprawiło dla tego typu pracy, ale nadal warto wspomóc się zewnętrznymi dodatkami, które są darmowe 1. Pierwszy dodatek, który polecam to XAML Intellisense Presenter. Dzięki niemu IntelliSense w edytorze XAML zyskuje nowe możliwości takie jak filtrowanie, wyszukiwanie za pomocą notacji Pascala czyli pisze tylko DG, a okienko pokaże nam DataGrid. Aby z...
Autor: Piszą swój cykl postów o WPF a w szczególności wpis, o DataBindingu pominąłem jeden ciekawy rodzaj bindingu o którym chciałbym dziś wspomnieć. Załóżmy, że mamy UI, który wyświetla jakieś elementy, które pobierane są z WebService’u. Oczywiście strzał do WebService’u (® by Marcin Najder) jest kosztowny jeśli chodzi o czas a UI nie chcemy blokować. Możemy wykorzystać w tym celu PriorityBinding. Jak? Załóżmy, że nasza klasa dostępu do danych wygląda następująco: publicclassDataAccess { publicList
Na samym początku postawiłem sobie cel związany z przerobieniem całego ebooka dotyczącego PRISM 4. Nie ma co owijać w bawełnę- sprawa zero jedynkowa – cel nie został osiągnięty, choć jest to i tak o wiele więcej niż jakbym nie miał przed sobą wyzwania. Do końca listopada udało mi się przeczytać 8 rozdziałów z 11, przy czym na podstawie pierwszych sześciu powstały 4 części dotyczące PRISM 4. Również rzeczy opisane w opublikowanych przeze mnie postach są zaimplementowane w moim codeplex’owy...
Tematem części 1 będzie, krótki opis na temat tego czym jest Prism, oraz opis Boostrapera. Co to jest Prism ? Prism to framework zawierająy szereg narzędzi ułatwiających budowę aplikacji składających się z niezależnych modułów. Wbrew pozorom, tak jak wiele osób uważa, Prism nie jest kolejnym frameworkiem MVVM. Wiele z ficzerów (Unity, EventAggregator) wchodzących w skład Prisma jest wykorzystywanych we własnych implementacjach MVVM typu Cinch, Caliburn etc. Dlaczego warto korzystać z Prism’a ? Gł...
Na prezentacji pokazałem sposób tworzenia aplikacji WPF z wykorzystaniem Visual Studio, Blend i wzorca projektowego MVVM. Kod i slajdy będą na SkyDrive grupy. Dzisiaj chcę wam pokazać jak można wykonać podobną aplikacje która może nam posłużyć do „wymyślania” haseł na konta ;p To do dzieła.1 Tworzymy nowy projekt.Nowy projekt utworzymy z wykorzystaniem Blenda. Jeżeli ktoś nie ma Blenda może śmiało to samo wykonać w Visual Studio. Uruchamiamy Blenda po czym w okienku które nam wyskoczyło naciskamy New Pr...
Architektura 5146 dni, 7 godzin, 54 minuty temu 259 źrodło rozwiń
WPF 3D, to zestaw funkcjonalności WPF-a,pozwalający na tworzenie i wyświetlanie grafiki trójwymiarowej (3D). Jednym z głównych celów stawianych WPF 3D jest wsparcie grafiki 3D w dziedzinie interaktywnych interfejsów użytkownika.
Niemal każdy program graficzny ma funkcjonalność: „dopasuj obraz do wielkości strony” (Zoom to fit, Auto-Zoom, itp ...). Zobaczmy jak można zrealizować taką funkcjonalność w programie pokazującym sceny 3D oparte o WPF 3D.
Autor: O tym jak obracać obiekty (lub kamerę) w scenie 3D pisałem już jakiś czas temu w artykułach: „Transformacje i przekształcenia 3D” „Obracamy, przesuwamy, skalujemy? Kamerę (i nie tylko)”. W oparciu o opisane tam rozwiązania i przy pomocy kontrolek typu Slider, tworzona przeze mnie aplikacja (MeshDiagram3D), transformuje kamerę w scenie, przez co sprawia wrażenie transformacji sceny. Nie każdemu jednak spodoba się przesuwanie suwaków (Slider), niektórzy chcieliby pewnie obracać scenę, „łapiąc” za ob...
Autor: W poprzednim wpisie opisany został algorytm, jakim można się kierować przy wypracowywaniu rozwiązania pozwalającego na interakcję myszy ze sceną 3D. W tym wpisie zaprezentowany zostanie gotowy kod w języku C# pozwalający na osiągnięcie założonego celu. Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D.W przygotowani...
Autor: Tym razem nie będzie nic odkrywczego, a wpis ten jest raczej „ku pamięci”, abym nie musiał więcej razy tego szukać (a może jeszcze komuś się przyda ...). Otóż te wpis będzie poświęcony iloczynowi wektorowemu.Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D.Czemu potrzebowałem iloczynu wektorowego? Otóż w aplikacji,...
autor: Pisałem wcześniej, że WPF 3D może być wykorzystane przy budowie interfejsów użytkownika, zastanówmy się więc jak można zapewnić interakcję sceny 3D z użytkownikiem. W tym artykule pokazane będzie jak można wyznaczyć wskazany myszą obiekt w scenie 3D. Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D.Aby zapewnić uży...