Artykuł ma na celu łagodne wprowadzenie czytelnika w świat PRISM. Dokumentacja, dostępna aktualnie na CodePlex lub MSDN, jest moim zdaniem zbyt skomplikowana dla osoby, która chce się w skrócie dowiedzieć, co oferuje programistom ten bardzo rozbudowany framework. http://msdn.microsoft.com/pl-pl/library/prism–modularne-aplikacje-wpf.aspxExplore posts in the same categories:Patterns & Practices, WPF
Trzeci z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. Przedstawiam tutaj działającą, prostą architekturę pozwalającą na komunikację wszystkich 3 klienckich platform z serwerem przy pomocy socketów.
Architektura 4692 dni, 5 godzin, 11 minut temu 58 źrodło rozwiń
Drugi z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. Przedstawiam w nim zarys komunikacji dwustronnej klient/serwer - serwer/klient przy pomocy socketów.
Architektura 4692 dni, 5 godzin, 11 minut temu 65 źrodło rozwiń
.NET pozwala na tworzenie aplikacji na wiele platform. To pierwszym z serii artykułów, w których pokażę swój pomysł na ożenienie WPF, Silverlight i Windows Phone. W tym znajdziecie trochę ogólnej teorii oraz informację o sposobach współdzielenia plików.
Architektura 4692 dni, 5 godzin, 11 minut temu 115 źrodło rozwiń
W poprzednim wpisie przedstawiłem w jaki sposób można lokalizować aplikację napisaną w Silverlight 4 oraz Windows Phone, wykorzystując do tego ten sam mechanizm. Tym razem zademonstruje w jaki sposób można nieco uprościć składnie tłumaczenia wykorzystując do tego MarkupExtension. Jeżeli kiedykolwiek pisałeś coś w Silverlighcie, Windows Phonie lub WPF-ie istnieje duża szansa, że używałeś już MarkupExtension. Do najpopularniejszych MarkupExtensions należą takie słowa kluczowe (używane w XAML-u) jak: Bi...
Silverlight 4708 dni, 10 godzin, 16 minut temu 73 źrodło rozwiń
autor: W poprzednim wpisie pisałem o tym, że zamiast wyznaczać ścieżki do obrazków, lepiej umieścić je w zasobach. Temat wydawał mi się prosty, ale w komentarzach pojawiła się odrobinę odmienna opinia: "Nie, obrazków nie trzyma się w zasobach. Ikony, czasem, jak potrzeba, jeden, dwa obrazki, ale nie więcej. One są za duże - EXE-k puchnie, robi się bałagan, trzeba rekompilować, by zmienić obrazek, a i krótsze nie jest. Tą linijkę równie dobrze można zapisać jako: ImageBrush brush = new ImageBrush(...
Ostatnio pod wpisem: "[WPF 3D] Malujemy scenę 3D pędzlem" dostałem w ramach komentarza pytanie związane z obrazkami w WPF i ścieżkami w nich. Nie jest to wielki problem, ale postaram się odpowiedzieć. Otóż problem wyglądał następująco: czytelnik tworzył pędzel przy pomocy kodu: ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Images/test.png"))); Niestety tak utworzony pędzel nie zawsze generował obraz, taki jak to było oczekiwane. Jak temu zaradzić. Otó...
Czy kiedykolwiek zdarzyło się Wam spotkać z aplikacją, która podczas przetwarzania jakiś bardziej złożonych i czasochłonnych operacji, swoje okno w sposób, który skutecznie blokował Waszą pracę? Czy nie zdarzało się Wam również w takich sytuacjach ujrzeć pełny optymizmu napis Brak odpowiedzi? Podejrzewam że każdy z Was, przynajmniej raz spotkał się z taką sytuacją. Być może część z Was przeklinała system operacyjny, choć w istocie to nie była do końca jego zasługa. Bardziej winny w takiej sytuacji był...
Architektura 4727 dni, 8 godzin, 18 minut temu 137 źrodło rozwiń
Nauka WPF idzie całkiem dobrze, a to oznacza kolejną porcję informacji. Dzisiaj trochę o ficzerze z Windows7 (które jest w Viście), a nie wiem czy będzie nadal aktualny w nowej wersji Windows, która pewnie ukaże niebawem. Opowiem trochę o pasku postępu, który można wyświetlać na ikonie aplikacji, która jest na systemowym pasku zadań, oraz o tym jak dodać kilka (maksymalnie 7 widocznych) guzików do podglądu aplikacji. Przez podgląd rozumiem, najechanie myszą na ikonę działającej aplikacji, znajdującą si...
Interfejs INotifyPropertyChangedPropertyChanged znany jest prawdopodobnie każdemu programiście C#. Interfejs ten zawiera jedynie jedno zdarzenie public event PropertyChangedEventHandler PropertyChanged; które powinniśmy odpalić w momencie gdy dana właściwość zostanie przez nas zmieniona. Dzięki temu dowolny obiekt, który będzie nasłuchiwał zmian danej właściwości zostanie o tym poinformowany. Przykładowa klasa implementująca ten interfejs może wyglądać w następujący sposób: public class ViewMode...
Tak jak wspomniałem w poprzednim wpisie, tym razem zajmiemy się tworzeniem własnej klasy implantującej interfejs ICommand . 1. Implementacja interfejsu ICommand - WPF Klasa implementująca ICommand może wyglądać w następujący sposób public class DelegateCommand : ICommand { private Action
Wstęp Każdy programista, który napisał chociaż parę linijek kody w WinFormsach wie, że kontrolki używają eventów do powiadamiania o zmianach swojego stanu. W przypadku, gdy interesuje nas odpowiednia reakcja na zdarzenie, podpinamy się do niego odpowiednią funkcją i wykonujemy założone przez nas operację. W analogiczny sposób można postępować w WPF-ie oraz w Silverlighcie, jednakże podejście takie niejako mija się z modelem MVVM. Posiadanie event handlerów w kodzie, ściśle wiąże nam widok (XAML) z code ...
Style jest to mechanizm wprowadzony w WPF-ie, a następnie w Silverlighcie, dzięki któremu w łatwy sposób można ujednolicić wygląd elementów naszej aplikacji. Style z reguły definiowane są w zasobach. Mogą to być zarówno zasoby całej aplikacji, danego okna lub nawet wybranej kontrolki. Przykładowy styl może wyglądać w następujący sposób: Każdy styl jest rozpoznawany dzięki unikalnemu kluczowi - parametr x:Key. Możliwe jest pominięcie klucza, w przypadku gdy ustawiona zostanie właściwść TargetType. ...
Trigery jest to mechmizm WPF-a służący reakcji UI na jakieś zdarzenie. Wyróżniamy cztery rodzaje triggerów Property triggers - używane do zareagowanie na zmiany dependency property w danej kontrolce, Data triggers - używane do zareagowanie na zmiany w bindowanych obiektach- można podłączyć się do właściwości z DataContextu jak i z danej kontrolki, MultiDataTriggers - używane do reagowania na zmiany kilku właściwości, MultiTrigger - używane do reagowania na zmiany kilku dependecy property w danej ...
Walidacja jest to technika sprawdzająca, czy dany obiekt spełnia pewne założenia poprawności danych. W WPF-ie oraz Silverlighcie istnieją trzy sposoby walidacji obiektów: walidacja poprzez rzucanie wyjątków, walidacja z użyciem interfejsu IDataErrorInfo, walidacja z użyciem interfejsu INotifyDataErrorInfo Walidacja poprzez rzucanie wyjątków Walidacja poprzez rzucanie wyjątków odbywa się w następujący sposób. W seterze danej właściwości dodajemy warunek sprawdzający czy wpisane dane są poprawne...
ListViewCollection (WPF) ListViewCollection jest to kolekcja wprowadzona do WPF-a, która wspiera sortowanie, grupowanie oraz filtrowanie. Kolekcję taką tworzymy w następujący sposób List
W ostatnim artykule pokazałem jak rozszerzyć kontrolki typu DataFormXXXField używane w kontrolce RadDataForm. W tym tekście zademonstruje kilka przykładowych kontrolek. Kod wszystkich kontrolek jest załączony na końcu artykułu. DataFormTextField Kontrolka rozszerzająca standardowy DataFormDataField dla pola tekstowego o możliwość ustawienia wysokości, możliwości wprowadzania nowych linii oraz ustalenia maksymalnej długości tekstu. Przykład użycia: DataFormDateTimeField Kontrolka rozszerzająca DataForm...
Silverlight 4777 dni, 55 minut temu 140 źrodło rozwiń
W ramach uczestnictwa w kursie WPF czytam ksiązkę "WPF 4 Unleashed" i przygotowuje jakieś przykłady sprawdzające co tam pan autor pisze w tej książce. Jeden z początkowych rozdziałów (tak, dopiero rozpoczynam kurs i książkę) poświęcony jest tematyce transformacji kontrolek, w związku z tym napisałem prosty przykład ukazyjący omawiane tranformacje. W zasadzie testuje tylko trzy z pięciu, ponieważ przesunięcie obiektów nie jest zbyt widowiskowe, a wykorzystanie macierzy nie jest na moją głowę. Zostają tylk...
Domyślnie WPF wyświetla okno dialogowe nieobsłużonego błędu a następnie po przyciśnięciu przycisku aplikacja zostaje zamknięta. W poście zajmiemy jednak się przeładowaniem tego zachowania poprzez np. zapis błędu do pliku. W WPF możemy wykorzystać zdarzenie DispatcherUnhandledException(plik App.xaml.cs), która wywoływana jest dla nieobsłużonych wyjątków. Jeśli zatem w kodzie znajdzie się wywołanie throw bez klauzuli catch, zdarzenie DispatcherUnhandledException zostanie uruchomione. Przykład, plik app.xam...
Jakiś czas temu, we wpisie Tworzenie aplikacji wielojęzycznych z C# i ASP.NET w Visual Studio opisywałem jak stworzyć aplikację, która będzie przystosowana do obsługi wielu języków i wykorzystywać będzie do realizacji tego celu mechanizm zasobów udostępniony w platformie .Net. Wpis ten, nie opisywał jednak zastosowanie tego mechanizmu, dla aplikacji napisanych pod kątem frameworka WPF, który korzysta z języka XAML. Dlatego też dziś, w ramach kolejnego wpisu z cyklu WPF Tutorial, chciałbym nadrobić braki...
Architektura 4807 dni, 18 godzin, 46 minut temu 266 źrodło rozwiń