--- source_files: - DTS Viewer/DTS.Viewer.Loader/View/ShellView.xaml.cs generated_at: "2026-04-16T14:06:20.949419+00:00" model: "zai-org/GLM-5-FP8" schema_version: 1 sha256: "5592dd58a3630256" --- # Documentation: ShellView.xaml.cs ## 1. Purpose `ShellView` is the main shell window component for the DTS Viewer application. It serves as the primary container/window for the WPF-based viewer interface, implementing the `IShellView` contract to integrate with the broader application architecture. This code-behind file handles window initialization and state management for the shell view. ## 2. Public Interface ### Class: `ShellView` - **Namespace:** `DTS.Viewer.Loader` - **Inherits from:** `Window` (WPF base class, implicit via `InitializeComponent()` and `WindowState` usage) - **Implements:** `IShellView` (from `DTS.Common.Interface`) #### Constructor: `ShellView()` ```csharp public ShellView() ``` **Behavior:** Initializes the XAML component via `InitializeComponent()` and immediately sets the window state to maximized (`WindowState.Maximized`). This ensures the shell window opens in a maximized state by default. ## 3. Invariants - The window will always initialize in a maximized state; there is no configuration or conditional logic to alter this behavior. - `ShellView` must implement `IShellView` to satisfy the contract expected by other components in the system (exact members of `IShellView` are not visible in this source file). - `InitializeComponent()` must be called before any UI element access; this is guaranteed by the constructor ordering. ## 4. Dependencies ### This module depends on: - **`System.Windows`** - WPF framework for `Window`, `WindowState`, and `DependencyObject` infrastructure. - **`DTS.Common.Interface.IShellView`** - Interface contract that `ShellView` implements. ### What depends on this module: - Not determinable from this source file alone. The `IShellView` interface consumers and any XAML references would be the dependents, but these are not visible here. ## 5. Gotchas - **Commented-out `StateChanged` handler:** There is disabled code that would toggle `ResizeMode` between `NoResize` (when maximized) and `CanResize` (otherwise). The reason for commenting this out is unclear from source alone—it may represent abandoned functionality, a bug workaround that is no longer needed, or tech debt. - **Hardcoded maximized state:** The window always opens maximized with no way to configure this behavior from outside the constructor. If different initial window states are needed, this would require modification.