Showing MahApps modal windows in a Prism WPF and MVVM friendly way (part 1).
Behavior is a attachable piece of code to variours XAML elements. It’s part of Blend SDK. Full source code can be found on a GitHub page. How it works? Behavior attached to window listens to key-presses When sequence for Konami Code is completed then it lanuches Storyboard animation Storyboard moves raptor and plays raptor squeak.
Jednym z fundamentów WPF’a są zasoby – Resources. Definiowane w ResourceDictionary czyli słowniku zasobów. Każdy element słownika posiada swój klucz, który używamy do pobrania zasobu „z bazy”.
W tym wpisie chciałbym przedstawić sposób działania delegatów oraz wyjaśnić korzystanie z wyrażeń lambda w języku C#. Zanim zajmę się wyrażeniami lambda, zacznę od przedstawiania delegatów. Jeżeli znasz choć trochę idee wskaźników w języku C lub C++ to wiesz, że służą one do przechowywania adresu pewnego obszaru pamięci. Podobnie możemy postrzegać delegaty – są pewnego rodzaju wskaźnikami na metodę lub grupę metod. To czy daną metodę możemy przypisać do delegatu zależy od jego typu zwrotnego...
Over four years ago I created a simple Pomidoro Windows App in order to learn Windows RT app development. Yeah! Windows RT was a new thing back then! My app was a simple timer that counts down from 25 minutes to 0. It was designed to use when applying the Pomodoro Technique... You will not believe what has happened last year!
Kolejny wpis na blogu. Tym razem trochę o przyjemności korzystania z systemu i pomysłów jak powinna wyglądać integracja z systemem.
Dawid Sibiński 0 comments .NET, C# Hello again 🙂 Visibly this is going to be my first technical post here. I hope you’ll find it useful.Windows Services Recently I came up with a need to create an application, which executes some tasks in the background based on file system’s events. “That’s easy”, one would say. “Build Windows Service app”, he would add. Sure, that was also my first idea. I think that’s very common that we want to create an application without any GUI, which pur...
Jeżeli zaczynasz swoją przygodę ze wzorcem MVVM to tak samo, jak ja prędzej czy później napotkasz na problem z obsługą zdarzeń. Teoretycznie powinny zastąpić nam je tzw. komendy. Jednak nie wszystkie kontrolki je obsługują(np. ComboBox) i nie dla wszystkich zdarzeń można je „ot, tak” wywołać. Jak zatem sobie z tym poradzić? Oczywiście trzeba powiązać dane zdarzenie z komendą 😉 Aby móc poradzić sobie z tym problemem, w miarę prosty sposób musimy posłużyć się frameworkiem ułatw...
Zastanawialiście się kiedyś, jak dostać się do szczegółowych informacji na temat komputera przy użyciu .NET’a? Do tego celu służy WMI (Windows Management Instrumentation). Czym konkretnie jest WMI? Jak mówi polska Wikipedia, jest to: „zestaw protokołów i rozszerzeń systemu Windows umożliwiających zarządzanie i dostęp do zasobów komputera, takich jak adaptery sieciowe, aktualnie otwarte programy, lista procesów, odczyty z wbudowanych czujników temperatury, odczytów woltomierzy ...
Biblioteki łączone dynamiczne, czy też po prostu biblioteki klas każdy z nas raczej zna. Są to pliki, z którymi stykamy się na co dzień podczas pracy z systemem Windows. Jednak jakie jest ich zastosowanie? Jak je tworzyć i jak ich używać? Dzisiaj przybliżę trochę ten temat 😉 Pliki dll można nazwać swoistymi kontenerami dla kodu/zasobów. Trzeba jednak zaznaczyć, że nie są one samodzielnymi aplikacjami. Co to oznacza? Kodu w nich zawartego nie da się wykonać inaczej, jak poprzez wywołanie go w standardo...
Wszystkie bardziej rozbudowane aplikacje mają to do siebie, że przechowują wprowadzone przez użytkownika dane. Chyba nikt nie wyobraża sobie ustawiania swoich indywidualnych preferencji np. w przeglądarce internetowej, czy w grach po każdym ich restarcie. Byłoby to bardzo niewygodne i denerwujące. Rozwiązać problem zapisu ustawień aplikacji można na różne sposoby. Po co jednak się trudzić, skoro .NET daje nam to „za darmo” 😉 Tak jak już wspomniałem .NET oferuje nam bardzo przyjemną formę zapisywania us...
Ten wpis jest skierowany do osób, które chciałyby napisać swój własny plugin do opisywanego przeze mnie wczoraj Cleanera 😉 Zaczynajmy więc! Pierwszą rzeczą, jaką należy zrobić, jest oczywiście stworzenie nowego pustego projektu. Musi być to projekt typu Class Library, a więc biblioteka klas. Po jego kompilacji otrzymamy plik *.dll, który po dodaniu do folderu plugins zostanie załadowany przez Cleanera. Oczywiście pod warunkiem, że zachowamy pewien wzorzec podczas pisania naszego pluginu 😉 Po utworzen...
Chyba każdy zgodzi się z tym, że ogromna część oprogramowania przeznaczona jest do użytku przez osoby z różnych części świata – a co za tym idzie posługującymi się różnymi językami. Oczywiście istnieją również aplikacje przeznaczone na „rynek lokalny”, jednak to raczej nisza. Jak zatem w łatwy i przyjemny sposób sprawić, aby nasza aplikacja obsługiwała wiele języków jednocześnie? Sposobów znajdzie się wiele, jednak na szczęście w przypadku .NET’a ta sprawa jest naprawdę prosta 😉 Właściwie do każdego p...
W końcu po dłuższej przerwie udało mi się przysiąść do pisania tutaj 😉 Przez ostatnie dwa tygodnie (prawie)każdą wolną chwilę poświęcałem programowaniu. Postanowiłem napisać od nowa mój dosyć stary projekt. Poprzednia wersja była napisana w code-behind i generalnie rzecz biorąc… Jej kod był po prostu straszny, jednak nie ma co się dziwić – w końcu był to mój pierwszy pełnoprawny program napisany w c#. O jakim projekcie mowa? Konkretnie o programie do czyszczenia zbędnych w systemie plików. Takich jak pl...
Windows tray’a na pewno każdy zna. Jest to ten obszar paska zadań, w którym widoczne są ikony programów działających w tle. Klikając na nie, możemy łatwo wyświetlić okno danego programu. Nic nie stoi na przeszkodzie, aby klikając na tę samą ikonkę PPM zmienić podstawowe ustawienia programu bez wyświetlania jego okna. Niektóre aplikacje wyświetlają też od czasu do czasu powiadomienia w postaci dymków. Całkiem fajna rzecz. Jak w takim razie się do niej dobrać przy pomocy C#? Pisząc aplikację w technologii...
Quick look at how to develop WPF application to compute git repository statistics using F#
Większość aplikacji pisanych w .NET, korzysta z funkcji udostępnianych przez ten framework od wersji 4.0, lub starszej. Dlaczego? Zapewne dlatego, że wersja ta zawiera właściwie 90% rzeczy, które są nam do szczęścia potrzebne. Dodatkowym atutem pisania aplikacji w wersji 4.0 tego frameworka, jest fakt, że to ostatnia wersja dostępna dla Windowsa XP. Jednak co w przypadku, kiedy zdecydujemy się porzucić starego XP’ka i skorzystać z nowych funkcji, jakie wnosi .NET 4.5? Okazuje się, że napotkamy na mały p...
Obfuscating windows batch files using undefined environmental variables
Wzorzec MVVM, co prawda wiele rzeczy ułatwia i porządkuje. Jednak potrafi sprawić też masę problemów. Pisząc swoją pierwszą aplikację, z użyciem tego wzorca natknąłem się na sporą ich ilość. Jednym z nich było przechwytywanie zdarzenia zamykania głównego okna aplikacji, w celu zapisania wprowadzonych zmian. Drugim problemem było zamknięcie innego okna – potomnego, które miało wyświetlać się na czas ładowania pliku, a później znikać. W przypadku code-behind zadania te są banalnie proste. Mamy zdarzenie za...
Dzisiaj będzie trochę o wzorcach projektowych. Mianowicie o MVVM, który zaleca się stosować w przypadku projektów opartych na WPF. Przyznam się szczerze, że zanim zrozumiałem zasadę działania tego wzorca i jego implementację minęło trochę czasu… Jednak po kilku podejściach w końcu się udało i mogę śmiało pisać w MVVM ;). Zaznaczam jednak, że pisanie kodu zgodnie z tym wzorcem, czasami może nie być łatwe i niektóre problemy mogą prosić się o rozwiązanie ich standardowo w code-behind. Ja na przykład siedzi...