W poprzednim poście z serii “Pytanie – rozwiązanie” pisałem jak można usunąć obramowanie i domyślny pasek okna. Niestety powoduje to pewien problem dotyczący przesuwania tak zdefiniowanego okna po ekranie. Szukając po sieci znalazłem rozwiązania sięgające do PInvoke i wysyłania sygnałów do okna. Całość niestety zajmowała ładnych kilkadziesiąt linii kodu. Okazuje się jednak, że jest rozwiązanie mieszczące się w dosłownie jednej linijce! Odpowiedź na pytanie “Jak przesuwać okno z ustawionym WindowState=None” składa się z trzech elementów:

a) Do okna dodajemy sobie element, który będzie odpowiedzialny za możliwość przesuwania okna
b) dodajemy do niego obsługę zdarzenia “MouseLeftButtonDown
c) we wnętrzu metody wpisujemy jedną linijkę:
DragMove();

Teraz bez najmniejszych problemów umożliwimy użytkownikowi manipulację naszym oknem nawet gdy nie ma ono górnego paska.