Avalonia iOS排查
- 作者仓库星标 18
- 作者仓库 claude-skills
Avalonia UI Framework - Orchestration Hub
Modular guidance for cross-platform desktop and mobile development using Avalonia, a WPF-inspired XAML-based framework for .NET.
Quick Reference: When to Load Which Resource
| Task/Goal | Load Resource |
|---|---|
| MVVM patterns, data binding, dependency injection, value converters | resources/mvvm-databinding.md |
| UI controls reference (layouts, inputs, collections, menus) | resources/controls-reference.md |
| Custom controls, advanced layouts, performance optimization, virtualization | resources/custom-controls-advanced.md |
| Styling, themes, animations, control templates | resources/styling-guide.md |
| Reactive patterns, commands, observables, animations | resources/reactive-animations.md |
| Windows, macOS, Linux, iOS, Android implementation details | resources/platform-specific.md |
Framework Overview
Avalonia is a cross-platform XAML framework supporting:
- Platforms: Windows, macOS, Linux, iOS, Android, WebAssembly
- Architecture: MVVM with ReactiveUI support
- Styling: CSS-like selectors with Fluent/Simple themes
- Features: Data binding, reactive commands, observable collections, custom controls
- Modern .NET: .NET 6+ and .NET Standard 2.0
Standard Project Structure
MyAvaloniaApp/
├── MyAvaloniaApp/ # Shared code
│ ├── App.axaml
│ ├── Views/ # XAML views
│ ├── ViewModels/ # Business logic + state
│ ├── Models/ # Data models
│ ├── Services/ # Application services
│ ├── Converters/ # Value converters
│ ├── Assets/ # Images, fonts
│ └── Styles/ # Style resources
├── MyAvaloniaApp.Desktop/ # Desktop-specific (Win/Mac/Linux)
├── MyAvaloniaApp.Android/ # Android-specific (optional)
├── MyAvaloniaApp.iOS/ # iOS-specific (optional)
└── MyAvaloniaApp.Browser/ # WebAssembly (optional)
Getting Started
Minimal Setup
// Program.cs
public static void Main(string[] args)
{
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
public static AppBuilder BuildAvaloniaApp() =>
AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace();
<!-- App.axaml -->
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyApp.App">
<Application.Styles>
<FluentTheme />
</Application.Styles>
</Application>
<!-- Views/MainWindow.axaml -->
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyApp.Views.MainWindow"
Title="My Application"
Width="800"
Height="600">
<StackPanel Padding="20" Spacing="10">
<TextBlock Text="Hello, Avalonia!" FontSize="24" FontWeight="Bold" />
</StackPanel>
</Window>
Core Patterns
MVVM Architecture Pattern
- View (XAML): UI presentation with data bindings
- ViewModel (C#): State management and commands
- Model (C#): Business logic and data access
- Service: Cross-cutting concerns (DI/IoC)
Load resources/mvvm-databinding.md for:
- ViewModel base classes
- Data binding modes and paths
- Multi-binding and converters
- Dependency injection setup
- Design-time data
Reactive Programming Pattern
Leverage ReactiveUI for event-driven UI updates:
this.WhenAnyValue(x => x.SearchText)
.Debounce(TimeSpan.FromMilliseconds(300))
.Subscribe(text => PerformSearch(text));
Load resources/reactive-animations.md for:
- Reactive properties and commands
- Observable sequences
- Animations and transitions
- Performance optimization
Platform-Adaptive Pattern
Design once, adapt per platform:
<OnPlatform Default="16">
<On Options="Windows" Content="14" />
<On Options="macOS" Content="15" />
</OnPlatform>
Load resources/platform-specific.md for:
- Runtime platform detection
- Platform-specific services
- Conditional UI rendering
- Native dialogs and features
Navigation by Task
"I need to build a form with validation"
- Load
resources/mvvm-databinding.md→ Implement ViewModel with property validation - Load
resources/controls-reference.md→ Find TextBox, ComboBox, Button controls - Load
resources/reactive-animations.md→ Add debounced validation with observables
"I'm seeing poor performance with large lists"
- Load
resources/custom-controls-advanced.md→ Enable virtualization - Load
resources/mvvm-databinding.md→ Use compiled bindings - Load
resources/reactive-animations.md→ Debounce/throttle updates
"I need platform-specific behavior"
- Load
resources/platform-specific.md→ Implement service interfaces - Load
resources/mvvm-databinding.md→ Register platform implementations via DI - Platform-specific
resources/→ Implement per-platform project
"I want custom styling and animations"
- Load
resources/styling-guide.md→ Define styles and themes - Load
resources/reactive-animations.md→ Add animations to styles - Load
resources/custom-controls-advanced.md→ Custom control templates
"I'm building a complex control"
- Load
resources/custom-controls-advanced.md→ TemplatedControl or UserControl pattern - Load
resources/mvvm-databinding.md→ Attached properties and data binding - Load
resources/styling-guide.md→ Control templates and styling
Resource Organization
mvvm-databinding.md (Primary)
- Architecture overview
- ViewModel patterns with ReactiveUI
- Binding modes and syntax
- Value converters
- Collections and list binding
- Design-time data
- Master-detail and tab patterns
controls-reference.md (Primary)
- Layout controls (Grid, StackPanel, DockPanel, etc.)
- Input controls (TextBox, Button, CheckBox, ComboBox, etc.)
- Display controls (TextBlock, Image, ProgressBar, etc.)
- Collection controls (ListBox, DataGrid, TreeView, etc.)
- Navigation (Menu, TabControl, SplitView, etc.)
- Shapes and drawing
styling-guide.md (Primary)
- CSS-like selectors (type, class, pseudo-classes)
- Resource dictionaries and themes
- Control templates
- Data templates
- Animations and transitions
- Easing functions
- Theme variants (light/dark)
reactive-animations.md (Advanced)
- ReactiveUI integration
- Reactive properties
- Reactive commands (sync and async)
- Observable sequences
- Filtering, transformation, combining
- Programmatic animations
- Common patterns (search, validation, auto-complete)
custom-controls-advanced.md (Advanced)
- Custom TemplatedControl creation
- User control composition
- Advanced layouts
- Virtualization
- Performance optimization
- Render transforms
- Graphics and drawing
platform-specific.md (Advanced)
- Runtime platform detection
- Multi-project structure
- Service abstractions
- Platform-specific implementations
- Window management per platform
- File system access
- Native features (Windows DLL, macOS Cocoa, etc.)
Common Workflows
Build a Desktop App (Windows/macOS/Linux)
1. → Setup: Standard project structure + FluentTheme
2. → Create Views and ViewModels following MVVM
3. → Use controls-reference for UI layouts
4. → Add styles with styling-guide
5. → Implement services with DI (mvvm-databinding)
6. → Add animations with reactive-animations
7. → Test on each platform with platform-specific guidance
Build a Cross-Platform Mobile+Desktop App
1. → Create shared project + platform-specific projects
2. → Define service interfaces in shared code (mvvm-databinding)
3. → Implement services per platform (platform-specific)
4. → Use OnPlatform for adaptive UI
5. → Register platform implementations via DI
6. → Test thoroughly on each target (iOS/Android/Windows/Mac)
Add Real-Time Search
1. → Create SearchViewModel (mvvm-databinding)
2. → Use ObservableCollection for results (mvvm-databinding)
3. → Implement with reactive search pattern (reactive-animations)
4. → Debounce input to reduce API calls
5. → Display with ListBox (controls-reference)
6. → Style with appropriate CSS selectors (styling-guide)
Build Complex Data-Driven UI
1. → Design ViewModel hierarchy (mvvm-databinding)
2. → Create master-detail view (mvvm-databinding)
3. → Use DataGrid for tabular data (controls-reference)
4. → Add sorting/filtering with observables (reactive-animations)
5. → Optimize with virtualization (custom-controls-advanced)
6. → Add custom controls if needed (custom-controls-advanced)
Best Practices Summary
Architecture
- Maintain strict MVVM separation of concerns
- Use dependency injection for testability
- Keep business logic in ViewModels, not Views
Performance
- Enable compiled bindings with
x:DataType - Virtualize large collections
- Debounce rapid updates
Styling
- Use resource dictionaries for consistency
- Support light and dark themes
- Test styles on all target platforms
Reactive Patterns
- Use observables for event-driven updates
- Debounce/throttle input-triggered operations
- Always handle ThrownExceptions on commands
Testing
- Unit test ViewModels in isolation
- Use Avalonia.Headless for UI testing
- Provide design-time DataContext in XAML
Cross-Platform Deployment
- Windows: ClickOnce, MSI, portable exe
- macOS: DMG, homebrew
- Linux: AppImage, snap, flatpak
- Mobile: Apple App Store, Google Play Store
- Web: Static hosting (WASM runtime required)
Refer to resources/platform-specific.md for platform-specific build and deployment guidance.
Navigation: Choose a resource above based on your task. Each resource is self-contained with comprehensive examples and best practices.
- 流狐分类
- 运维部署
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 89 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @markpitt · v2.0 · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。;上游仓库已 184 天未更新,可能与最新 agent 行为不一致。
作者没有在当前 SKILL.md 中定义固定输出样例。 Task/Goal · Load Resource MVVM patterns, data binding, dependency injection, value converters · resources/mvvm-databinding.md UI controls reference (layouts, inputs, collections, menus) · resources/controls-reference.md
Avalonia is a cross-platform XAML framework supporting: Platforms: Windows, macOS, Linux, iOS, Android, WebAssembly Architecture: MVVM with ReactiveUI support
Standard Project Structure
Getting Started
Minimal Setup
Core Patterns
# Avalonia UI Framework - Orchestration Hub
Modular guidance for cross-platform desktop and mobile development using Avalonia, a WPF-inspired XAML-based framework for .NET.
## Quick Reference: When to Load Which Resource
| Task/Goal | Load Resource |
|-----------|---------------|
| MVVM patterns, data binding, dependency injection, value converters | `resources/mvvm-databinding.md` |
| UI controls reference (layouts, inputs, collections, menus) | `resources/controls-reference.md` |
| Custom controls, advanced layouts, performance optimization, virtualization | `resources/custom-controls-advanced.md` |
| Styling, themes, animations, control templates | `resources/styling-guide.md` |
| Reactive patterns, commands, observables, animations | `resources/reactive-animations.md` |
| Windows, macOS, Linux, iOS, Android implementation details | `resources/platform-specific.md` |
## Framework Overview
**Avalonia** is a cross-platform XAML framework supporting:
- **Platforms**: Windows, macOS, Linux, iOS, Android, WebAssembly
- **Architecture**: MVVM with ReactiveUI support
- **Styling**: CSS-like selectors with Fluent/Simple themes
- **Features**: Data binding, reactive commands, observable collections, custom controls
- **Modern .NET**: .NET 6+ and .NET Standard 2.0
### Standard Project Structure
```
MyAvaloniaApp/
├── MyAvaloniaApp/ # Shared code
│ ├── App.axaml
│ ├── Views/ # XAML views
│ ├── ViewModels/ # Business logic + state
│ ├── Models/ # Data models
│ ├── Services/ # Application services
│ ├── Converters/ # Value converters
│ ├── Assets/ # Images, fonts
│ └── Styles/ # Style resources
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Quick Reference: When to Load Which Resource → Framework Overview → Standard Project Structure → Getting Started → Minimal Setup → Core Patterns
要点 -> Avalonia · Platforms · Architecture · Styling · Features · Modern .NET · View · ViewModel
文件/命令 -> resources/mvvm-databinding.md · resources/controls-reference.md · resources/custom-controls-advanced.md · resources/styling-guide.md · resources/reactive-animations.md · resources/platform-specific.md · resources/ · mvvm-databinding.md
内容 SHA-256 -> 112c477e06a3
方法与流程
适用与边界
原文中的明确线索
resources/mvvm-databinding.md、resources/controls-reference.md、resources/custom-controls-advanced.md、resources/styling-guide.md、resources/reactive-animations.md、resources/platform-specific.md、resources/、mvvm-databinding.md