dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Windows - Strona 9

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. ...

Tagi: C#, Silverlight, Style, WPF
Dziel się z innymi:
Style w WPF oraz Silverlight ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 99 rozwiń

Biblioteka Microsoft UI Automation ujrzała światło dzienne wraz z premierą .NET 3.0 - jednakże pozostała ona w cieniu swoich większych braci WPF oraz WPF, które również zostały wprowadzone do Frameworka 3.0. Microsoft UI automation zapewnia nam dostęp do wszystkich elementów drzewa wizualnego aplikacji. Dzięki czemu mamy możliwość: Znajdowania wybranych przez nas kontrolek Interakcji z kontrolkami - wpisywanie tekstów do TextBox-ów, klikanie w przyciski itp Wczytywania wartości już wprowadzonych ...

Tagi: C#, Test, ui, UI Automation
Dziel się z innymi:
UIAutomation - czyli testy automatyczne w .NET ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 182 rozwiń

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...

INotifyPropertyChanged i LambdaExpression ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 291 rozwiń

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

Dziel się z innymi:
Commands - Komendy cz.2 ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 111 rozwiń

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 ...

Dziel się z innymi:
Commands - Komendy cz.1 ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 223 rozwiń

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...

Dziel się z innymi:
Walidacja w WPF oraz Silverlight ~ Premium Hands

Windows 2500 dni, 11 godzin, 30 minut temu premium-hands-net 126 rozwiń

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 ...

Tagi: C#, Trigery, Triggers, WPF
Dziel się z innymi:
Triggers - Trigery ~ Premium Hands

Windows 2501 dni, 6 godzin, 44 minuty temu premium-hands-net 68 rozwiń

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

Tagi: C#, Silverlight, WPF
Dziel się z innymi:
ListViewCollection oraz PagedCollectionView ~ Premium Hands

Windows 2501 dni, 6 godzin, 44 minuty temu premium-hands-net 62 rozwiń

autor: Platforma .NET, dzięki mechanizmowi refleksji, pozwala na dynamiczne wczytywanie do programu podzespołów (ang. assembly). Pozwala to w łatwy sposób pisać rozszerzane przy pomocy pluginów aplikacje i na wiele innych rzeczy. Ostatnio potrzebowałem wykorzystać ten mechanizm do własnych celów. Aby zwiększyć bezpieczeństwo, postanowiłem ładować podzespoły do odzielnych domen aplikacyjnych. W ten sposób, jeśli po załadowaniu podzespołu i wykonaniu jego kodu pojawi się błąd, główna domena aplik...

Tagi: .Net, Assembly
Dziel się z innymi:
Michał Komorowski: Wczytywanie podzespołów do domeny aplikacyjnej

Windows 2503 dni, 11 godzin, 21 minut temu macko 111 rozwiń

Poszukując sposobów automatycznego testowania aplikacji natrafiłem na ciekawą funkcjonalność Visual Studio 2010 Ultimate. Mianowicie w tej wersji naszego ulubionego IDE znalazło się miejsce na nowy typ testów - Coded UI Test. Coded UI Test jest to automatyczny test UI, który tworzymy poprzez nagrywanie akcji jakie wykonujemy w naszej aplikacji. Nie musimy pisać ani jednej linijki kodu żeby przetestować jakąś funkcjonalność naszego programu. Jedyne co musimy zrobić jest to przejście przez wszystkie niezbę...

Dziel się z innymi:
Coded UI Test - tworzenie testów UI przy pomocy Visual Studio Ultimate ~  Premium Hands

Windows 2505 dni, 7 godzin, 26 minut temu premium-hands-net 174 rozwiń

Poprawnie zaprojektowana aplikacja powinna weryfikować dane w każdej warstwie systemu. Oczywiście najważniejszym miejscem jest warstwa biznesowa ale dobrym zwyczajem jest walidacja również w warstwie prezentacji. W idealnym interfejsie użytkownik nie jest w stanie wprowadzić błędnych danych. Podstawowym przykładem są pola edycyjne w których powinno się wpisać np. ilość sprzedanego produktu. Użytkownik nie powinien mieć możliwości wprowadzenia tekstu w takie pole. Zacznijmy od prostej sprawy – akceptacja...

Tagi: weryfikacja
Dziel się z innymi:
Piotr Zieliński » IntTextBox oraz RealTextBox w WPF

Windows 2510 dni, 4 godziny, 57 minut temu pzielinski 81 rozwiń

W miarę przeglądania dokumentacji wyławiam z niej różne mniej pierwszoplanowe informacje. Powstają z tego robocze zapiski, które myślę mogę tutaj również zamieszczać. WinJS.xhr At install time, the user sees which capabilities an app asks for, so the app is installed only if the user agrees for it to access those resources. Windows.Web.Syndication.SyndicationClient To use WinJS templates, we must reference the bulk of the WinJS CSS and JavaScript files. These files provide the styles and behavior for t...

Tagi: Windows 8
Dziel się z innymi:
Notatki o Windows 8 - odc.1

Windows 2513 dni, 4 godziny, 4 minuty temu paduda 176 rozwiń

Na różnych forach często użytkownicy mają problem z aktualizacją kontrolek z innego wątku. Załóżmy, że odpaliliśmy sobie BackgroundWorker lub po prostu Thread. Wykonujemy jakieś operację, np. łączymy się ze zdalnymi zasobami. Stworzenie osobnego wątku w takim scenariuszu jest bardzo pożądane ponieważ nie blokujemy wtedy aktualizacji interfejsu. W trakcie pobierania informacji z Internetu chcemy aktualizować interfejs aby informować użytkownika o postępach np.progressBar.Value = progessValue; Jeśli powyż...

Dziel się z innymi:
Piotr Zieliński » Aktualizacja interfejsu z drugiego wątku(windows forms i WPF)

Windows 2513 dni, 22 godziny, 14 minut temu pzielinski 399 rozwiń

Na pierwszy rzut oka, TextBlock oraz Label są bardzo podobne. Obydwie kontrolki(?)  wyświetlają tekst. Różnice są jednak spore i postaram się je wyjaśnić. Sprawdźmy co następujący kod wyświetli: Kontrolka Label jest lekko przesunięta w prawo. Jest to spowodowane faktem, że Padding dla Label domyślnie ma wartość 5. W przypadku TextBlock jest to 0, dlatego też na powyższym screenie TextBlock przylega do krawędzi. Ustawmy IsEnabled StackPanel’a na false i sprawdźmy jak zachowają się kontrolki: Lab...

Tagi: Label, TextBlock
Dziel się z innymi:
Piotr Zieliński » WPF: TextBlock vs. Label

Windows 2517 dni, 19 godzin, 11 minut temu pzielinski 164 rozwiń

Często musimy implementować interfejs INotifyPropertyChanged. Szczególnie w przypadku wykorzystania wzorca MVVM oraz WPF. Najczęściej programiści wykorzystują podstawową implementację i przekazują nazwę parametru jako czysty string np:if(PropertyChanged!=null) { PropertyChanged(this,new PropertyChangedEventArgs("propName")); } Wszystko działa bardzo dobrze, dopóki nie zmienimy nazwy właściwości. Przede wszystkim należy wtedy pamiętać o zaktualizowaniu wszystkich wywołań ProperyChanged. Nie możemy po...

Dziel się z innymi:
Piotr Zieliński » PropertyChanged bez przekazywania string’a

Windows 2519 dni, 7 godzin, 25 minut temu pzielinski 462 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...

Dziel się z innymi:
jsthedeveloper: WPF - rotacja, transformacja i przechylanie

Windows 2520 dni, 10 godzin, 47 minut temu Paweł Łukasik 129 rozwiń

Ostatnio napotkałem problem stworzenia menu zawierającego zarówno dynamiczne elementy (binding) jak i statyczne. Okazało się, że wcale nie jest to takie proste jak to jest w przypadku większości rzeczy w WPF. Zacznijmy jednak od przedstawienia sposobów tworzenia menu w WPF. Pierwszy to oczywiste statyczne menu, w całości zdefiniowane w XAML: W powyższym kodzie nie ma nic nadzwyczajnego. Sytuacja jest również łatwa gdy chcemy w całości zdefiniować menu jako dynamiczne: Gdzie pojedynczy item to:publiccl...

Tagi: menu
Dziel się z innymi:
Piotr Zieliński » WPF, dynamiczne i statyczne menu

Windows 2523 dni, 12 godzin, 13 minut temu pzielinski 194 rozwiń

autor:W poście tym wrócę jeszcze do tematu uruchamiania kilku usług w jednym procesie. Otóż, ciekawe jest to, że można konfigurować to zachowanie już po zainstalowaniu usługi. Służy do tego, i nie tylko tego, program wiersza poleceń o nazwie sc. Poniżej przedstawiam przykład jego użycia. Zacznijmy od pobrania konfiguracji usługi ABC przy pomocy komendy sc query ABC. Przykładowy wynik pokazałem poniżej. SERVICENAME: ABC TYPE : 20 WIN32SHARE_PROCESS STATE ...

Tagi: sc, serwis, Windows
Dziel się z innymi:
Wiele usług w jednym procesie 2

Windows 2535 dni, 17 godzin, 26 minut temu macko 63 rozwiń

W .NET 4.0 dodano (mało chyba popularną) klasę MemoryCache służącą do buforowania danych. Wcześniej programiści znali podobną klasę w ASP.NET. Od wersji 4.0 została ona wydzielona i można z niej teraz korzystać we wszystkich typach aplikacji – także WPF i WinForms.  Za pomocą MemoryCache można ustawić czas  ważności danych w buforze za pomocą czasu absolutnego,  priorytetu, monitorów, które unieważniają dane np. na podstawie zmiany pliku na dysku lub tzw. SlidingExpiration – czasu który upłynął od ostatn...

Dziel się z innymi:
Piotr Zieliński » MemoryCache–buforowanie w .NET 4.0

Windows 2539 dni, 11 godzin, 51 minut temu pzielinski 284 rozwiń

Istnieje kilka podejść do debugowania usług systemowych. Jeśli chcemy debugować już uruchomioną usługę to możemy skorzystać z opcji Attach to process.... Sprawa jest trudniejsza jeśli chcemy podłączyć się do usługi w momencie jej uruchamiania. W takim wypadku można w kodzie usługi wywołać metodę Debugger.Brake. Są też inne sposoby, na przykład sztuczne opóźnienie startu usługi, tak aby zdążyć się do niej podpiąć. Ostatnio poznałem nowe, bardzo ciekawe podejście. Polega ono na stwor...

Dziel się z innymi:
Wiele usług w jednym procesie

Windows 2539 dni, 11 godzin, 51 minut temu macko 204 rozwiń

1 2... 7 8 9 10 11 12... 21 22