Wall.cs !opis pliku! - adamnowak/Create-Box GitHub Wiki

WallType.cs

Schema

W tym pliku zdefiniowana jest klasa Wall. Ma ona reprezentować ścianę pudełka. Dla ułatwienia połączyłem logikę z wizualizacją i klasa Wall dziedziczy po klasie Canvas. Zatem nasza Wall jest 'lepszą/rozszerzoną' Canvas.

Jak widzimy na powyższym obrazku Wall rozszerza Canvas o

Property (Właściwości): CanvasHeight, CanvasWidth, EditableCanvas, WallColor, WallType.

Metody: ... Większość tych metod jest używana do manipulowania elementem na ścianie.

Jeśli spojrzymy w plik BoxCreator\BoxCreatorDoc\Help\Documentation.chm -> BoxCreator Namespaces -> Wall Class -> Wall Members widzimy listę metod, pól i properties (właściwości) oraz eventów, w które 'uzbrojona' jest nasza Wall. Czarne (nie linki) to metody, pola, właściwości i eventy (zdarzenia), które zostały odziedziczone po klasie Canvas. Zatem w klasie Wall zostały zaimplementowane tylko te, do których można przejść przy pomocy linku (niebieskiego podkreślonego napisu!:)). Jak się łatwo zorientować, linki są tylko do tych elementów, które widać na powyższym obrazku. Nie zapominajmy jednak, że nasza Wall jest 'lepszą' Canvas i możemy używać wszystkich jej elementów.

Teraz do czego jest używana Wall. Najprościej ... otworzyć sobie BoxCreatora i ... wszystkie ściany pokazane w MainWindow to Wall, ściana edytowana w SketchWindow to również Wall (można to zobaczyć w SketchWindow.xaml).

Przy budowaniu pudełka tworzone są odpowiednie ściany, które finalnie są wyświetlone na Canvas (normalna nie nasza ulepszona) w klasie MainWindow (MainWindow.xaml). Dodatkowo jedna Wall jest tworzona przy każdym otwarciu okienka SketchWindow.

Dla przykładu weźmy sobie pudełko zamknięte (Close). Ma ono 6 ścian. Po otwarciu programu i zdefiniowaniu, że chcemy używać tego rodzaju pudełka do Canvas (Name = cnsBoxTable) w MainWindow zostanie dodane 6 obiektów typu Wall. I tutaj krótkie wyjaśnienie, co znaczy, że elementy zostaną dodane do Canvas. Canvas to 'materiał' na którym możemy coś malować. Malowanie polega na dodawaniu kolejnym elementów określonego typu i o określonych własnościach w określone miejsce naszej Canvas. Zatem na początku dodajemy 6 obiektów Wall do Canvas (Name = cnsBoxTable) o określonym rozmiarze, kolorze i w określone miejsce. Do właśnie stworzonych wszystkich Walls dodanych do MainWindow dodajemy obsługę zdarzenia Click - jeśli się kliknie na którąkolwiek Wall w MainWindow zostanie wywołane zdarzenie otwierające SketchWindow. Przed jego otwarciem do property WallToEdit obiektu SketchWindow zostanie przypisana Wall, którą chcemy edytować (na którą własnie kliknęliśmy). W evencie Loaded naszego obiektu Wall (jest to event, który się wywołuje kiedy kontrolka, którą jest również Canvas załaduje się do programu), który znajduje się w SketchWindow (nazwa funkcji obsługującej ten event CnsWallTableLoaded) widzimy, że do property EditableCanvas obiektu WallToEdit przypisywana jest Wall z SketchWindow (cnsWallTable).

For developers

Home