Autor Wątek: [WPF] Edytor / designer diagramów  (Przeczytany 1277 razy)

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Grudzień 08, 2014, 14:59:43
Witam. Może temat niezwiązany zbyt mocno z gamedevem, ale jest duże prawdopodobieństwo, że ktoś pomoże (bo przerabiał coś podobnego u siebie).

Otóż piszę sobie prostą aplikację WPF-ową. Jej zadanie to pobierać z bazy danych "punkty". Punkt jest to pewien obiekt, który posiada pewne parametry. I teraz punkt ma właściwości "rekursywne" takie jak parent (jaki jest punkt nadrzędny?), source (jaki jest punkt źródłowy?) i target (jaki jest punkt docelowy?) oraz typ (czy jest zwykłym punktem czy połączeniem między punktami?)

Punkt może być zwizualizowany jako prostokąt bądź połączenie (zwykła linia) zależnie od swojego typu.

Jak ja to robię:

Stworzyłem klasę DataItem, która odpowiada punktowi w bazie. Jako miejsce w którym ma się ukazywać diagram wybrałem Canvas z jednym dzieckiem: ControlDataItems, którego klasa dziedziczy po kontrolce ListBox (dzięki temu mam zaznaczanie i mogę bindować do ItemsSource). Jako ItemsSource tego ControlDataItems dałem dwa punkty typu zwykłego i jeden punkt typu połączenie.

Dodam, że stworzyłem specjalną klasę ManipulatorControl (dziedziczącą po ContentControl), której zadaniem jest wyświetlanie dookoła swojego Contentu obiektów typu ThumbControl (dziedziczących po Thumb), w których jest zakodowana logika przesuwania - tak jakby uchwytów np. prostokąta, aby móc zmienić jego rozimar i pozycję.

Prostokąty opanowałem, sprawa się "rypła" na połączeniach, próbuję to robić na Polyline i bindować kolekcję jej punktów z kontrolkami ManipulatorThumb - ale to nie wyszło mi jeszcze i szczerze nie mam przekonania czy w dobrą stronę idę. Chciałbym móc edytować przynajmniej dwa końce połączenia.

Wszystko praktycznie trzymam w słownikach zasobów i nadpisuję szablony i style.

Czy ogólna konstrukcja tego ma sens?

Będę wdzięczny za jakąkolwiek pomoc, czy to jako odpowiedź w wątku czy też link do jakiegos tutka, ebooka, który pozwoli mi ładnie i poprawnie w WPF tworzyć takie "designerskie" aplikacje.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline matheavyk

  • Użytkownik
    • rabagames.com

  • +1
# Grudzień 08, 2014, 15:18:02
Może to się przyda:
http://www.codeproject.com/Articles/23871/WPF-Diagram-Designer-Part
Nazywa się tak samo i jest o połączeniach :P

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Grudzień 08, 2014, 15:24:23
Pewnie, przyda się :) widziałem jakiś inny tutek właśnie też na code project. Właśnie ten program to wynik pobieżnego przejrzenia paru tutków i przeczytania może 10% ebooka "WPF Control Design Unleashed" + trochę doświadczeń wcześniejszych. Ale temat dalej otwarty - bo czy ja tak jak opisałem wyżej - to to dobrze robię?