# Runoi.Flish **Repository Path**: footer/Runoi.Flish ## Basic Information - **Project Name**: Runoi.Flish - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-16 - **Last Updated**: 2026-01-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Runoi.Flish - Desktop Lyric Display Application Runoi.Flish is a WPF-based desktop lyric display application that supports parsing and real-time display of LRC format lyric files, offering practical features such as window control, font size adjustment, and transparency adjustment. ## Features - **Lyric Display**: Supports parsing and real-time scrolling display of LRC format lyrics - **Font Size Adjustment with Multiple Presets**: Provides (Small/Medium/Large/Extra Large) presets, with slider for precise adjustment - **Transparency Adjustment**: Adjust window transparency via slider for seamless background integration - **Window Control**: Supports always-on-top, minimize, and close operations - **Lyric Navigation**: Supports manual switching to previous/next lyric line - **Responsive Design**: Interface layout adapts to different screen resolutions ## Technology Stack - **.NET WPF**: Windows Presentation Foundation desktop application framework - **C#**: Primary development language - **MVVM Architecture**: Implements the Model-View-ViewModel design pattern - **XAML**: Used for defining the user interface ## System Architecture The project adopts the classic MVVM architecture to separate UI logic from business logic: ### Model Layer (Models) - `LrcLine`: Lyric line data model containing timestamp and lyric text - `LyricItem`: Lyric item model inheriting from LrcLine, with an added flag for current highlight state ### View Layer (Views) - `MainWindow`: Main window containing control buttons and lyric display area - `LyricControl`: Custom lyric control responsible for rendering and displaying lyrics ### ViewModel Layer (ViewModels) - `BaseViewModel`: Base class implementing INotifyPropertyChanged interface - `LyricsViewModel`: Lyric view model managing lyric data, playback state, and user interactions ### Service Layer (Services) - `LrcParserService`: LRC lyric parsing service responsible for converting LRC text into a list of lyric objects ## Project Structure ``` Runoi.Flish/ ├── MainWindow.xaml.cs # Main window logic ├── App.xaml # Application definition ├── App.xaml.cs # Application entry point ├── Models/ │ ├── LrcLine.cs # Lyric line model │ └── LyricItem.cs # Lyric item model ├── Services/ │ └── LrcParserService.cs # LRC parser service ├── ViewModels/ │ ├── BaseViewModel.cs # ViewModel base class │ └── LyricsViewModel.cs # Lyric view model └── Runoi.Flish.csproj # Project configuration file ``` ## Usage Instructions ### System Requirements - Windows operating system - .NET Framework 4.5 or higher - Visual Studio 2019 or higher ### Installation & Deployment 1. Clone or download the project code 2. Open the `Runoi.Flish.sln` solution file in Visual Studio 3. Press F5 to build and run the project ### Operation Guide - **Play/Pause**: Click the play/pause button to control lyric scrolling - **Font Size**: Adjust lyric font size via menu or slider - **Transparency Adjustment**: Drag the transparency slider to adjust window opacity - **Always-on-Top**: Check "Always on Top" to keep the window on top of all others - **Manual Navigation**: Use "Previous Line" / "Next Line" buttons to manually switch lyrics ## Core Implementations ### LRC Lyric Parsing ```csharp // LrcParserService.cs public static List Parse(string lrcText) { // Parse LRC format lyric text // Example format: [00:12.34]Lyric content } ``` ### Lyric Synchronization Display ```csharp // LyricControl.cs public void UpdateLyricPosition(TimeSpan currentTime) { // Update lyric display position based on current playback time // Highlight the current lyric line } ``` ### Playback Control ```csharp // LyricsViewModel.cs public void StartPlayback() public void StopPlayback() public void PausePlayback() public void ResumePlayback() ``` ## Contribution Guidelines 1. Fork this project 2. Create your feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## Open Source License This project is licensed under the MIT License. ## Contact For questions or suggestions, please submit an Issue via the Gitee project page or contact the project maintainer. --- **Author**: footer **Project URL**: [Runoi.Flish](https://gitee.com/footer/Runoi.Flish)