# classisland | ClassIsland | Knowledge Base | Instagit

一款功能强、可定制、跨平台，适用于班级多媒体屏幕的课表信息显示工具，可以一目了然地显示各种信息。

GitHub Stars: 2.2k

Repository: https://github.com/classisland/classisland

---

## Articles

### [How the AppColorSource Enum Controls Automatic Theme Color Extraction in ClassIsland](/classisland/classisland/how-does-the-appcolorsource-enum-control-automatic-theme-color-extraction)

Learn how the AppColorSource enum in ClassIsland manages automatic theme color extraction. Discover how setting it to Wallpaper triggers desktop wallpaper palette adoption for a dynamic UI.

- Tags: internals
- Published: 2026-02-27

### [How to Implement Component Carousel and Scrolling in ClassIsland](/classisland/classisland/how-to-implement-component-carousel-and-scrolling-in-classisland-components)

Implement component carousel and scrolling in ClassIsland using Avalonia's Carousel control and a custom StickyScrollViewer for smooth snap-to-item navigation. Elevate your UI.

- Tags: tutorial
- Published: 2026-02-27

### [GuidEmptyFallbackConverter in ClassIsland: Handling Empty GUIDs in JSON Serialization](/classisland/classisland/what-is-the-purpose-of-guidemptyfallbackconverter-in-json-serialization)

Learn how GuidEmptyFallbackConverter in ClassIsland resolves JSON serialization errors by safely converting empty strings to Guid.Empty, preventing FormatExceptions.

- Tags: internals
- Published: 2026-02-27

### [How ObservableDictionary Works for Managing Dynamic Collections in Settings](/classisland/classisland/how-does-the-observeddictionary-work-for-managing-dynamic-collections-in-settings)

Learn how ObservableDictionary manages dynamic collections in settings. Discover its powerful synchronization between your data and UI layers using INotifyCollectionChanged and INotifyPropertyChanged.

- Tags: internals
- Published: 2026-02-27

### [Understanding the TimeState Enum in ClassIsland: How It Tracks Current Class State](/classisland/classisland/what-is-the-timestate-enum-and-how-does-it-track-current-class-state)

Discover the TimeState enum in ClassIsland and learn how LessonsService tracks current class state in real time for automation and UI updates.

- Tags: internals
- Published: 2026-02-27

### [How to Use CsesExtensions for Importing Class Schedules from CSES Format](/classisland/classisland/how-to-use-csesextensions-for-importing-class-schedules-from-cses-format)

Easily import class schedules from CSES format into ClassIsland. Learn to use CsesExtensions or the built-in Data Transfer UI for seamless integration and profile merging.

- Tags: how-to-guide
- Published: 2026-02-27

### [ClassIsland NotificationModes Enum: How to Control Notification Display](/classisland/classisland/what-is-the-notificationmodes-enum-and-how-do-different-notification-modes-work)

Discover the ClassIsland NotificationModes enum to control notification display. Learn how Disabled, EnabledForce, and Default modes manage alerts and override global settings.

- Tags: deep-dive
- Published: 2026-02-27

### [How to Handle Cross-Platform Differences Using ClassIsland.Platforms.Abstractions](/classisland/classisland/how-to-handle-cross-platform-differences-using-classislandplatformsabstractions)

Master cross-platform C# development with ClassIsland.Platforms.Abstractions. Inject platform-specific implementations seamlessly for unified code.

- Tags: how-to-guide
- Published: 2026-02-27

### [Understanding AttachableSettingsObject in ClassIsland: A Deep Dive into Modular Settings Architecture](/classisland/classisland/what-is-the-purpose-of-the-attachablesettingsobject-and-how-does-it-enable-modular-settings)

Explore AttachableSettingsObject in ClassIsland. Learn how this modular settings architecture enables runtime extensibility for derived models using GUID identified dictionaries. Discover its purpose and benefits.

- Tags: deep-dive
- Published: 2026-02-27

### [How NotificationProviderRegisterInfo Enables Custom Notification Providers in ClassIsland](/classisland/classisland/how-does-the-notificationproviderregisterinfo-enable-custom-notification-providers)

Learn how NotificationProviderRegisterInfo enables custom notification providers in ClassIsland by bridging implementations with the framework, exposing metadata, and managing settings.

- Tags: internals
- Published: 2026-02-27

### [What Is the IAppHost Interface in ClassIsland and How Do Plugins Interact With the Host Application?](/classisland/classisland/what-is-the-iapphost-interface-and-how-do-plugins-interact-with-the-host-application)

Discover the IAppHost interface in ClassIsland for seamless plugin interaction. Access DI services universally with GetService<T>() and TryGetService<T>() for robust application development.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Implement Weather Notification Settings Using IWeatherNotificationSettingsBase in ClassIsland](/classisland/classisland/how-to-implement-weather-notification-settings-using-iweathernotificationsettingsbase)

Learn to implement weather notification settings with IWeatherNotificationSettingsBase in ClassIsland. Configure custom alerts and forecasts easily to control notification appearance.

- Tags: how-to-guide
- Published: 2026-02-27

### [TempClassPlanGroupType Enum and Temporary Class Plan Switching in ClassIsland](/classisland/classisland/what-is-the-tempclassplangrouptype-enum-and-how-does-temporary-class-plan-switching-work)

Understand the TempClassPlanGroupType enum and temporary class plan switching in ClassIsland. Learn how this feature controls schedule prioritization during temporary changes.

- Tags: internals
- Published: 2026-02-27

### [How to Use the Profile Model to Manage Multiple Class Schedules in ClassIsland](/classisland/classisland/how-to-use-the-profile-model-to-manage-multiple-class-schedules-and-switch-between-them)

Learn to manage multiple class schedules and switch between them using the Profile model in ClassIsland. This guide explains profile model properties for seamless schedule management.

- Tags: how-to-guide
- Published: 2026-02-27

### [How the ManagementSettings Model Enables Centralized Control in ClassIsland](/classisland/classisland/how-does-the-managementsettings-model-support-centralized-control-features)

Discover how the ManagementSettings model in ClassIsland provides centralized control over client connections and policy distribution for efficient remote management.

- Tags: deep-dive
- Published: 2026-02-27

### [NotificationEffect vs NotificationSpeech in ClassIsland: Visual Alerts vs Voice Announcements](/classisland/classisland/what-is-the-difference-between-notificationsettingsnotificationeffect-and-notificationsettingsspeech)

Discover the difference between NotificationEffect and NotificationSpeech in ClassIsland. Learn how to control visual ripple alerts and text-to-speech announcements independently for a better user experience.

- Tags: deep-dive
- Published: 2026-02-27

### [How to Create a Settings Page for a ClassIsland Plugin Using Axaml](/classisland/classisland/how-to-create-a-settings-page-for-a-classisland-plugin-using-axaml)

Learn to create a settings page for your ClassIsland plugin using Axaml. Follow our guide to inherit from SettingsPageBase and register your UI easily.

- Tags: how-to-guide
- Published: 2026-02-27

### [How Plugin Loading and Lifecycle Management Work in ClassIsland.PluginSdk: A Deep Dive into the Core Architecture](/classisland/classisland/how-does-the-plugin-loading-and-lifecycle-management-work-in-classislandpluginsdk)

Explore ClassIsland.PluginSdk's plugin loading and lifecycle management. Discover the three-phase pipeline: discovery, dependency resolution, and isolated initialization for robust plugin integration.

- Tags: deep-dive
- Published: 2026-02-27

### [ClassIsland TimeRule Evaluation Logic: How Class Schedules Are Determined](/classisland/classisland/what-is-the-timerule-evaluation-logic-and-how-does-it-determine-class-schedule-timing)

Discover ClassIsland's TimeRule evaluation logic. Learn how weekday matching and multi-week cycles determine active class schedules for precise time management.

- Tags: internals
- Published: 2026-02-27

### [How to Implement the IAttachedSettings Interface for Custom Attachable Settings Controls in ClassIsland](/classisland/classisland/how-to-implement-the-iattachedsettings-interface-for-custom-attachable-settings-controls)

Learn to implement the IAttachedSettings interface in ClassIsland by creating custom settings models, deriving UI controls, registering them, and consuming them via IAttachedSettingsHostService.

- Tags: how-to-guide
- Published: 2026-02-27

### [How ClassIsland Automation ActionSets Work: A Complete Guide to Custom Actions](/classisland/classisland/how-do-automation-actions-work-and-how-to-create-custom-automation-actions)

Learn how ClassIsland Automation ActionSets work to manage complex workflows. Discover how to create custom automation actions for seamless task execution and management.

- Tags: how-to-guide
- Published: 2026-02-27

### [ClassIsland IPC Communication System Architecture: A Deep Dive into ClassIsland.Shared.IPC](/classisland/classisland/what-is-the-architecture-of-the-classisland-ipc-communication-system-in-classislandsharedipc)

Explore the ClassIsland IPC communication system architecture powering ClassIsland.Shared.IPC. Learn how named pipes and JSON routing enable typed RPC and broadcast notifications across processes.

- Tags: architecture
- Published: 2026-02-27

### [How to Implement a Custom INotificationProvider Plugin for ClassIsland](/classisland/classisland/how-to-implement-a-custom-inotificationprovider-plugin-for-classisland)

Implement a custom INotificationProvider plugin for ClassIsland by creating a decorated class and inheriting from NotificationProviderBase. Publish NotificationRequest objects with INotificationHostService for automatic registr...

- Tags: how-to-guide
- Published: 2026-02-27

### [How the ClassPlan Model Handles Time Layout Validation and ValidTimeLayoutItems in ClassIsland](/classisland/classisland/how-does-the-classplan-model-handle-time-layout-validation-and-what-is-validtimelistitems)

Discover how the ClassPlan model validates time layout and uses ValidTimeLayoutItems in ClassIsland. Learn about its lazy computation and automatic recomputation for schedule changes.

- Tags: deep-dive
- Published: 2026-02-27

