Może się zdarzyć, że aplikacjazostała skompilowana, by obsługiwać pewną wersję .NET Framework, jednak by chcemy ją zmusić by działała pod inną wersją. Okazuje się, że można to zrobić bez rekompialacji. Jak? Wystarczy wykorzystać element SupportedRuntime w pliku konfiguracyjnym aplikacji (app.config). Element supportedRuntime umieszczamy wewnątrz elementów
Jak już sam tytuł sugeruje chciałbym poświęcić tego posta wstążkom (ang. Ribbon). Dlaczego akurat nim? Sądzę, że Ribbon jest jednym z bardziej interesujących wynalazków, wobec którego żaden programista aplikacji użytkowych nie powinien przejść obojętnie.
Dziś będzie prosty artykulik o katalogach, plikach, assembly, typach, interfejsach itp... Czyli pokazane zostanie jak wykorzystać te wspomniane elementy, by zaimplementować prosty mechanizm wtyczek (plugin'ów) dla aplikacji. Założenia: Chcemy mieć aplikację, która wykorzystuje mechanizm wtyczek; Wtyczka ma dostarczać pewien tekst (może robić co tylko zechcemy, ale przykład z założenia ma być prosty); Wtyczka będzie plikiem DLL, który znajdować się będzie w tym samym katalogu co aplikacja korzystając...
Korzystając z Viusal Studio i .NET mamy łatwy sposób konfigurowania aplikacji przy pomocy plików app.config oraz Settings.Settings. Pisałem już o tym na tym blogu w artykule: „Przechowywanie i edycja ustawień aplikacji w .NET (prosto, szybko, sprawnie i elegancko)(przykłady oparte o .NET, w języku C#)”. Niestety można natknąć się na „schody”, gdy ustawienia chcemy przenosić pomiędzy różnymi assembly. Zobaczmy na prostym przykładzie jak to rozwiązać...
Czasem jest potrzeba przeniesienia jakiejś klasy z jednej biblioteki (assembly) do drugiej. Jest to dość powszechna czynność, ale może sprawić problem, a mianowicie co zrobić, jeżeli nie możemy przekompilować aplikacji, która z pewnej biblioteki korzysta, a właśnie wykorzystana klasa została przeniesiona do innej biblioteki. Na szczęście jest na to lekarstwo: TypeForwardedTo. Przeanalizujmy przykład. Mamy proste solution: Aplikacja TypeForwardedTo ma referencję do ClassLibrary1, w której znajduje się pr...
Autor: Notka to bardziej – ku pamięci – niż pełnowartościowy wpis. Na co dzień programuję głównie dla weba używając ASP.NET, od czasu do czasu zdarza mi się napisać proste rzeczy w Windows Forms. Dziś przez dobre 30 minut (jeśli nie lepiej) rwałem sobie włosy z głowy zastanawiając się jakie property i w czym przestawić, żeby kontrolka ErrorProvider po zwalidowaniu TextBoxa pokazała błąd ale pozwoliła przejść dalej w formularzu (zmienić focus). ...
Autor: Ostatnio męczyłem się z jednym tematem z WPF’a a mianowicie stworzyć przycisk, który jako swoje stany (Normal, Pressed, Disabled, Hover) będzie miał obrazki. Chciałem to zrobić ze zwykłego przycisku odpowiednio tworząc jego Template i wykorzystując potęgę Triggerów. Wszystkie moje próby spaliły na panewce bo i problem już się pojawiał w momencie gdzie przechowywać ścieżki do 4 obrazków. W końcu przyszedł pomysł (wsparty przejrzeniem SO – dzięki @Gutek) i zabrałem się za robienie CustomControl. Te...
TestForm form = new TestForm(); if (form.ShowDialog() == DialogResult.OK) { ... } Czy powyższy króciutki fragment kodu powodujący wyświetlenie okna dialogowego jest poprawny? Niestety, jeszcze do niedawna powiedziałbym bez mrugnięcia oka, że oczywiście tak. Niestety ponieważ ta odpowiedź jest niepoprawna...
Jak przekierować wersję assembly w pliku app.config.
Czasami mam dość pisania switchów, tylko po to by wywołać odpowiednią metodę - przeważnie o takiej samej sygnaturze[...]. Niby fajnie, ale jakoś nie za fajnie, ja chciałbym móc zrobić coś w stylu: Wywołaj polecenie dla Wartości x; Jedna linijka, proste i przyjemne w użyciu
Niniejszy artykuł ma przedstawić absolutne minimum na temat zachowania Garbage Collectora i kasowania nieużywanych obiektów z pamięci za pomocą metody Dispose().
W menu kontekstowym Windows bardzo brakuje mi pozycji "open command line here". Czy wielka szkoda stałaby się komuś, gdyby dorzucił ją tutaj?... Po raz kolejny okazało się, że to nie świat jest zły, tylko ja - głupi - Tak autor zaczął swój kolejny post ;)
Skala szarości i sepia Na początku miałem zamiar zrobić z tego tematu krótki tekst, który w sam raz nadawałby się na Short Tip. Jednak testowy projekt rozrósł się na tyle (a przy okazji doszedłem do paru ciekawych wniosków), że grzechem byłoby niepoświęcenie temu “śledztwu” kilku minut i słów więcej. Chodzi o banalny na pozór temat: przetwarzanie obrazów i dwa bodajże najbardziej popularne filtry: skalę szarości oraz sepię. Przy okazji pisania projektu w CUDA chciałem obejrzeć te efekty, zaimplementowałe...
Autor: Czasami się normalnie idzie załamać, szukałem sposobu na zmianę kolejności (order), ale jakoś nie pomyślałem, że jest taka opcja jak “NoSort” w PropertyGrid – wpis zostanie jako naukowa ciekawostka, bo tym sposobem można osiągnąć inne rzeczy – choćby ustalanie kolejności wg. własnego widzimisię.
Autor: Kolejny post ‘ku pamięci’, abym w przyszłości nie musiał tego szukać. Bawiłem się ostatnio przyciskiem, który ma pokazywać ContextMenu po naciśnięciu przycisku. Automatyczne pojawianie się ContextMenu po przyciśnięciu prawego przycisku działało bez problemu, tak więc nie spodziewałem się problemów z kodem poniżej....
WiX: Tworzenie logów - problem i rozwiązanie
Autor: Aplikacją oczywiście w WPFie. Jako, że budowałem dla niej instalator postanowiłem sprawdzić czy wszystkie niezbędne komponenty są dołączane. Chciałem oczywiście, aby w przypadku braku .NET instalował się on skorzystałem z rozwiązania podanego przez Bartka Szafko we wpisie Instalowan...
Na codeplex jest świetny projekt autorstwa Kenta Boogarta pozwalający na definiowane konwerterów w XAMLu.
Jednak pamiętać o takim małym wynalazku o nazwie Windows Presentation Foundation w skrócie powszechnie znanym jako WPF. Ale dlaczego? Podam prosty przykład :)