# Avalonia サンプルアプリケーション 画面遷移図

本ドキュメントは、Avaloniaフレームワークのサンプルアプリケーション群における画面遷移構造を示します。

## 1. ControlCatalog アプリケーション

メインの機能デモアプリケーションです。HamburgerMenuによるナビゲーション構造を持ちます。

```mermaid
flowchart TB
    subgraph ControlCatalog["ControlCatalog Application"]
        MW[MainWindow] --> MV[MainView]
        MW -.-> DW[DecoratedWindow]

        subgraph HamburgerMenu["HamburgerMenu Navigation"]
            MV --> Composition[CompositionPage]
            MV --> Accelerator[AcceleratorPage]
            MV --> Acrylic[AcrylicPage]
            MV --> AdornerLayer[AdornerLayerPage]
            MV --> AutoComplete[AutoCompleteBoxPage]
            MV --> Border[BorderPage]
            MV --> BitmapCache[BitmapCachePage]
            MV --> Buttons[ButtonsPage]
            MV --> ButtonSpinner[ButtonSpinnerPage]
            MV --> Calendar[CalendarPage]
            MV --> Canvas[CanvasPage]
            MV --> Carousel[CarouselPage]
            MV --> CheckBox[CheckBoxPage]
            MV --> Clipboard[ClipboardPage]
            MV --> ColorPicker[ColorPickerPage]
            MV --> ComboBox[ComboBoxPage]
            MV --> ContainerQuery[ContainerQueryPage]
            MV --> ContextFlyout[ContextFlyoutPage]
            MV --> ContextMenu[ContextMenuPage]
            MV --> Cursor[CursorPage]
            MV --> CustomDrawing[CustomDrawing]
            MV --> DataGrid[DataGridPage]
            MV --> DataValidation[DataValidationPage]
            MV --> DateTimePicker[DateTimePickerPage]
            MV --> CalendarDatePicker[CalendarDatePickerPage]
            MV --> Dialogs[DialogsPage]
            MV --> DragDrop[DragAndDropPage]
            MV --> Expander[ExpanderPage]
            MV --> Flyouts[FlyoutsPage]
            MV --> Focus[FocusPage]
            MV --> Gestures[GesturePage]
            MV --> Image[ImagePage]
            MV --> Labels[LabelsPage]
            MV --> LayoutTransform[LayoutTransformControlPage]
            MV --> ListBox[ListBoxPage]
            MV --> Menu[MenuPage]
            MV --> Notifications[NotificationsPage]
            MV --> NumericUpDown[NumericUpDownPage]
            MV --> OpenGL[OpenGlPage]
            MV --> OpenGLLease[OpenGlLeasePage]
            MV --> PlatformInfo[PlatformInfoPage]
            MV --> Pointers[PointersPage]
            MV --> ProgressBar[ProgressBarPage]
            MV --> RadioButton[RadioButtonPage]
            MV --> RefreshContainer[RefreshContainerPage]
            MV --> RelativePanel[RelativePanelPage]
            MV --> ScrollViewer[ScrollViewerPage]
            MV --> Slider[SliderPage]
            MV --> SplitView[SplitViewPage]
            MV --> TabControl[TabControlPage]
            MV --> TabStrip[TabStripPage]
            MV --> TextBox[TextBoxPage]
            MV --> TextBlock[TextBlockPage]
            MV --> ThemeVariants[ThemePage]
            MV --> ToggleSwitch[ToggleSwitchPage]
            MV --> ToolTip[ToolTipPage]
            MV --> TransitioningCC[TransitioningContentControlPage]
            MV --> TreeView[TreeViewPage]
            MV --> Viewbox[ViewboxPage]
            MV --> NativeEmbed[NativeEmbedPage]
            MV --> WindowCustom[WindowCustomizationsPage]
            MV --> HeaderedContent[HeaderedContentPage]
            MV --> Screens[ScreenPage]
        end
    end

    style MW fill:#4a90d9,color:#fff
    style MV fill:#67b7dc,color:#000
    style DW fill:#90caf9,color:#000
```

## 2. RenderDemo アプリケーション

レンダリング機能のデモアプリケーションです。

```mermaid
flowchart TB
    subgraph RenderDemo["RenderDemo Application"]
        RMW[MainWindow] --> RPages

        subgraph RPages["HamburgerMenu Navigation"]
            direction TB
            Animations[AnimationsPage]
            Transitions[TransitionsPage]
            CustomAnimator[CustomAnimatorPage]
            SpringAnimation[SpringAnimationsPage]
            Clipping[ClippingPage]
            Drawing[DrawingPage]
            SkCanvas[CustomSkiaPage]
            RenderTargetBitmap[RenderTargetBitmapPage]
            WriteableBitmap[WriteableBitmapPage]
            GlyphRun[GlyphRunPage]
            FormattedText[FormattedTextPage]
            TextFormatter[TextFormatterPage]
            LineBounds[LineBoundsPage]
            PathMeasurement[PathMeasurementPage]
            Brushes[BrushesPage]
            Transform3D[Transform3DPage]
        end

        RMW --> Animations
        RMW --> Transitions
        RMW --> CustomAnimator
        RMW --> SpringAnimation
        RMW --> Clipping
        RMW --> Drawing
        RMW --> SkCanvas
        RMW --> RenderTargetBitmap
        RMW --> WriteableBitmap
        RMW --> GlyphRun
        RMW --> FormattedText
        RMW --> TextFormatter
        RMW --> LineBounds
        RMW --> PathMeasurement
        RMW --> Brushes
        RMW --> Transform3D
    end

    style RMW fill:#4a90d9,color:#fff
```

## 3. VirtualizationDemo アプリケーション

仮想化機能のデモアプリケーションです。

```mermaid
flowchart TB
    subgraph VirtualizationDemo["VirtualizationDemo Application"]
        VMW[MainWindow]

        subgraph VPages["HamburgerMenu Navigation"]
            Playground[PlaygroundPageView]
            Chat[ChatPageView]
            Expanders[ExpanderPageView]
        end

        VMW --> Playground
        VMW --> Chat
        VMW --> Expanders
    end

    style VMW fill:#4a90d9,color:#fff
```

## 4. IntegrationTestApp アプリケーション

統合テスト用アプリケーションです。ListBoxによるナビゲーション構造を持ちます。

```mermaid
flowchart TB
    subgraph IntegrationTestApp["IntegrationTestApp Application"]
        IMW[MainWindow]
        IMW -.-> ShowWindow[ShowWindowTest]
        IMW -.-> TopmostWindow[TopmostWindowTest]

        subgraph IPages["ListBox Navigation"]
            WindowDeco[WindowDecorationsPage]
            Automation[AutomationPage]
            IComboBox[ComboBoxPage]
            IListBox[ListBoxPage]
            Pointer[PointerPage]
            ICheckBox[CheckBoxPage]
            IScrollBar[ScrollBarPage]
            IContextMenu[ContextMenuPage]
            IScreens[ScreensPage]
            Desktop[DesktopPage]
            IDragDrop[DragDropPage]
            IMenu[MenuPage]
            IGestures[GesturesPage]
            IButton[ButtonPage]
            Embedding[EmbeddingPage]
            IRadioButton[RadioButtonPage]
            IWindow[WindowPage]
            ISlider[SliderPage]
        end

        IMW --> WindowDeco
        IMW --> Automation
        IMW --> IComboBox
        IMW --> IListBox
        IMW --> Pointer
        IMW --> ICheckBox
        IMW --> IScrollBar
        IMW --> IContextMenu
        IMW --> IScreens
        IMW --> Desktop
        IMW --> IDragDrop
        IMW --> IMenu
        IMW --> IGestures
        IMW --> IButton
        IMW --> Embedding
        IMW --> IRadioButton
        IMW --> IWindow
        IMW --> ISlider
    end

    style IMW fill:#4a90d9,color:#fff
    style ShowWindow fill:#90caf9,color:#000
    style TopmostWindow fill:#90caf9,color:#000
```

## 5. BindingDemo アプリケーション

データバインディングのデモアプリケーションです。TabControlによるナビゲーション構造を持ちます。

```mermaid
flowchart TB
    subgraph BindingDemo["BindingDemo Application"]
        BMW[MainWindow]

        subgraph BTabs["TabControl Navigation"]
            Basic[Basic Tab]
            BListBox[ListBox Tab]
            PropertyValidation[Property Validation Tab]
            Commands[Commands Tab]
            Advanced[Advanced Tab]
        end

        BMW --> Basic
        BMW --> BListBox
        BMW --> PropertyValidation
        BMW --> Commands
        BMW --> Advanced
    end

    style BMW fill:#4a90d9,color:#fff
```

## 6. その他のサンプルアプリケーション

```mermaid
flowchart TB
    subgraph OtherApps["Other Sample Applications"]
        subgraph GpuInterop["GpuInterop"]
            GMW[MainWindow] --> GpuDemo[GpuDemo]
        end

        subgraph TextTestApp["TextTestApp"]
            TMW[MainWindow]
        end

        subgraph AppWithoutLifetime["AppWithoutLifetime"]
            AMW[MainWindow] -.-> Sub[Sub Window]
        end

        subgraph SingleProjectSandbox["SingleProjectSandbox"]
            SMW[MainWindow] --> SMainView[MainView]
        end

        subgraph Sandbox["Sandbox"]
            SbMW[MainWindow]
        end
    end

    style GMW fill:#4a90d9,color:#fff
    style TMW fill:#4a90d9,color:#fff
    style AMW fill:#4a90d9,color:#fff
    style SMW fill:#4a90d9,color:#fff
    style SbMW fill:#4a90d9,color:#fff
```

## 画面遷移パターン

| パターン | 使用アプリケーション | 説明 |
|---------|---------------------|------|
| HamburgerMenu | ControlCatalog, RenderDemo, VirtualizationDemo | サイドバーによるナビゲーション |
| TabControl | BindingDemo | タブによるナビゲーション |
| ListBox | IntegrationTestApp | リストアイテム選択によるナビゲーション |
| モーダルウィンドウ | IntegrationTestApp, AppWithoutLifetime | 新規ウィンドウのポップアップ |

## 凡例

- **青色（濃）**: メインウィンドウ
- **青色（淡）**: サブウィンドウ / モーダル
- **実線矢印（-->）**: 常時遷移可能なナビゲーション
- **破線矢印（-.->）**: 条件付き遷移（ボタンクリック等）
