← スキル一覧に戻る

wpf-ui-shell
by YosrBennagra
⭐ 1🍴 0📅 2026年1月21日
SKILL.md
name: wpf-ui-shell description: Create or refactor a .NET 8 WPF shell for a desktop widget host using CommunityToolkit.Mvvm and a custom viewmodel-first navigation service. Use when working on App.xaml, MainWindow/ShellWindow, shared ResourceDictionaries, runtime Light/Dark theming, or shell layout for widget-style apps. Avoid Prism, Frame navigation, and heavy region managers.
Wpf Ui Shell
Overview
Define the primary shell window, shared resources, and navigation contract for a WPF widget host app.
Constraints
- Target .NET 8
- CommunityToolkit.Mvvm
- ViewModel-first navigation via a custom service
- No Prism, no Frame navigation, no heavy region manager
- Fluent-inspired design system using native WPF styles
- Light/Dark themes via ResourceDictionaries with runtime switching
- Single shell window as primary host; secondary windows for widgets/tools/dialogs
Definition of done (DoD)
- Shell uses ContentControl host (not Frame) for navigation
- Navigation service updates CurrentViewModel, views resolve via DataTemplate
- Theme switching works at runtime without restart
- Secondary windows inherit shared resources
- Tray icon provides app access when shell is hidden
Workflow
- Locate shell files:
App.xaml, shell window XAML/code-behind, and theme dictionaries. - Confirm the shell layout uses a
ContentControlhost (notFrame). - Define or update the navigation service and VM-to-view mapping.
- Centralize shared styles in merged dictionaries and keep view XAML lean.
- Add runtime theme switching by swapping merged dictionaries.
- Ensure secondary windows inherit the same resources and chrome rules.
Shell layout pattern
Use a minimal, durable layout with explicit regions and a content host:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<!-- Title bar / nav -->
</DockPanel>
<ContentControl Grid.Row="1"
Content="{Binding CurrentViewModel}" />
</Grid>
ViewModel-first navigation
Map view models to views using DataTemplates in App.xaml (or a merged dictionary). The
navigation service updates CurrentViewModel on the shell VM.
<DataTemplate DataType="{x:Type vm:HomeViewModel}">
<views:HomeView />
</DataTemplate>
Resource dictionaries and themes
- Keep colors, brushes, typography, and control styles in merged dictionaries.
- Split themes into
Themes/Light.xamlandThemes/Dark.xaml. - Switch themes by replacing the theme dictionary at runtime.
References
references/shell-layouts.mdfor layout variants (title bar, nav, content host).references/navigation-service.mdfor VM-first navigation patterns.references/theme-switching.mdfor dictionary swap details.references/design-system.mdfor Fluent-inspired style guidance.
スコア
総合スコア
40/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です