Weather Viewer
January 5, 2026 ยท View on GitHub
A modern WinUI 3 desktop weather application built with .NET and MVVM architecture.
Features
- ๐ค๏ธ Multi-City Weather - View weather for multiple cities simultaneously
- ๐ City Search - Quick search with autocomplete suggestions
- ๐ก๏ธ Temperature Units - Toggle between Celsius and Fahrenheit
- ๐จ Fluent Design - Native WinUI controls with Mica backdrop
- ๐ Theme Support - Follows Windows light/dark theme
- โจ๏ธ Keyboard Shortcuts - Ctrl+R to refresh, Ctrl+F to search
Screenshots
Releases
Download the latest release from the Releases page.
Requirements
- Windows 10 version 1809 (build 17763) or later
- .NET 10.0 SDK
- Windows App SDK 1.8+
Getting Started
Clone the repository
git clone https://github.com/YOUR_USERNAME/weather.git
cd weather
Build and Run
dotnet build
dotnet run
Project Structure
weather/
โโโ Models/ # Data models (WeatherData, City)
โโโ Services/ # Weather service interface and mock implementation
โโโ ViewModels/ # MVVM ViewModels
โโโ Views/ # XAML pages and controls
โ โโโ Controls/ # Custom UserControls (WeatherCard)
โโโ Converters/ # Value converters
โโโ App.xaml # Application resources and theming
โโโ weather.csproj # Project file
Architecture
The application follows the MVVM (Model-View-ViewModel) pattern using CommunityToolkit.Mvvm:
- Models - Data classes for weather information and cities
- Views - XAML UI with WeatherCard UserControl
- ViewModels - Business logic with ObservableObject and RelayCommand
- Services - Abstracted weather data retrieval
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+R | Refresh all weather data |
Ctrl+F | Focus city search box |
Customization
Adding Real Weather API
The app supports WeatherAPI.com for live data.
- Get a free API Key from weatherapi.com
- Open the app
- Click Settings (gear icon)
- Enter your API Key and select "Live Data"
The key is stored securely using Windows Credential Manager.
Changing Accent Color
Edit App.xaml to customize the Sky Blue accent:
<Color x:Key="Primary">#YOUR_COLOR</Color>
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.