diff --git a/build/Stride.Tests.Simple.slnf b/build/Stride.Tests.Simple.slnf
index ddd615bef2..a1a7d19673 100644
--- a/build/Stride.Tests.Simple.slnf
+++ b/build/Stride.Tests.Simple.slnf
@@ -14,7 +14,7 @@
"..\\sources\\editor\\Stride.Core.Assets.Editor.Tests\\Stride.Core.Assets.Editor.Tests.csproj",
"..\\sources\\editor\\Stride.GameStudio.Tests\\Stride.GameStudio.Tests.csproj",
"..\\sources\\presentation\\Stride.Core.Presentation.Quantum.Tests\\Stride.Core.Presentation.Quantum.Tests.csproj",
- "..\\sources\\presentation\\Stride.Core.Presentation.Tests\\Stride.Core.Presentation.Tests.csproj",
+ "..\\sources\\presentation\\Stride.Core.Presentation.Wpf.Tests\\Stride.Core.Presentation.Wpf.Tests.csproj",
"..\\sources\\presentation\\Stride.Core.Quantum.Tests\\Stride.Core.Quantum.Tests.csproj",
"..\\sources\\shaders\\Stride.Shaders.Tests\\Stride.Shaders.Tests.csproj",
"..\\sources\\tools\\Stride.Templates.Tests\\Stride.Templates.Tests.csproj"
diff --git a/build/Stride.slnx b/build/Stride.slnx
index 95fb3c504a..0a4810917e 100644
--- a/build/Stride.slnx
+++ b/build/Stride.slnx
@@ -152,29 +152,38 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
-
-
-
-
+
+
+
+
+
+
diff --git a/docs/asset-system/README.md b/docs/asset-system/README.md
index 4f5da3c631..602e0d1a0c 100644
--- a/docs/asset-system/README.md
+++ b/docs/asset-system/README.md
@@ -33,10 +33,10 @@ flowchart LR
| Runtime type | `DataContract`-decorated class | Engine feature assembly (e.g. `Stride.Graphics`) | `sources/engine/` |
| Asset class | `Asset` subclass | `Stride.Assets` or feature assembly (e.g. `Stride.Assets.Models`) | `sources/engine/` |
| Compiler | `AssetCompilerBase` subclass | Same assembly as the asset class | `sources/engine/` (same folder as asset class) |
-| Editor Tier 2 | `AssetViewModel` subclass | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/ViewModel/` |
-| Editor Tier 3 VM | `AssetEditorViewModel` subclass | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/AssetEditors/` |
-| Editor Tier 3 View | `IEditorView` XAML control | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/AssetEditors/` |
-| Template | `.sdtpl` YAML file | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/Templates/Assets/` |
+| Editor Tier 2 | `AssetViewModel` subclass | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/ViewModel/` |
+| Editor Tier 3 VM | `AssetEditorViewModel` subclass | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/` |
+| Editor Tier 3 View | `IEditorView` XAML control | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/` |
+| Template | `.sdtpl` YAML file | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/Templates/Assets/` |
## Choose a Base Class for the Asset
diff --git a/docs/asset-system/editor.md b/docs/asset-system/editor.md
index 3370b8c5d7..ba8f1bda11 100644
--- a/docs/asset-system/editor.md
+++ b/docs/asset-system/editor.md
@@ -56,7 +56,7 @@ Keep the ViewModel thin — business logic belongs in the asset class itself, no
### Assembly Placement
-`Stride.Assets.Presentation` (`sources/editor/Stride.Assets.Presentation/`). This assembly is editor-only and must not be referenced by runtime or compiler assemblies.
+`Stride.Assets.Presentation.Wpf` (`sources/editor/Stride.Assets.Presentation.Wpf/`). This assembly is editor-only and must not be referenced by runtime or compiler assemblies.
## Tier 3: Full Custom Editor
diff --git a/docs/asset-system/registration.md b/docs/asset-system/registration.md
index 809edaa473..98c5de544f 100644
--- a/docs/asset-system/registration.md
+++ b/docs/asset-system/registration.md
@@ -78,12 +78,12 @@ Field reference:
- **`AssetTypeName`** — the simple class name of the `Asset` subclass. Namespace is not required and is ignored.
- **`Scope`** — always `Asset` for standard asset templates.
- **`Group`** — the menu group in GameStudio's Add Asset dialog. Existing groups (exact strings): `Animation`, `Font`, `Material`, `Media`, `Miscellaneous`, `Model`, `Physics`, `Physics-Bepu`, `Scene`, `Script`, `Sprite`, `Texture`, `UI`. Use an existing group or introduce a new one.
-- **`Order`** — controls sort position within the group. Inspect existing `.sdtpl` files in `sources/editor/Stride.Assets.Presentation/Templates/Assets/` for reference values.
+- **`Order`** — controls sort position within the group. Inspect existing `.sdtpl` files in `sources/editor/Stride.Assets.Presentation.Wpf/Templates/Assets/` for reference values.
Place the `.sdtpl` file in:
```
-sources/editor/Stride.Assets.Presentation/Templates/Assets/%%Group%%/%%AssetName%%.sdtpl
+sources/editor/Stride.Assets.Presentation.Wpf/Templates/Assets/%%Group%%/%%AssetName%%.sdtpl
```
The directory name under `Assets/` does not have to match the `Group` string exactly — the directory is just for organisation. The file is embedded automatically via the wildcard include already present in `Stride.Assets.Presentation.csproj` — no manual `.csproj` edit is needed for engine assets.
diff --git a/docs/editor/README.md b/docs/editor/README.md
index 01cee358ac..21f819cf83 100644
--- a/docs/editor/README.md
+++ b/docs/editor/README.md
@@ -8,7 +8,7 @@ Stride's editor is built on a ViewModel layer that sits above Quantum and the as
flowchart TD
A["ITransactionStack + Operation
Stride.Core.Design · Stride.Core.Transactions
sources/core/Stride.Core.Design/Transactions/
Shared interface and base type — each consumer creates its own instance"]
B["IUndoRedoService
Stride.Core.Presentation
sources/presentation/Stride.Core.Presentation/Services/
Wraps stack with naming, dirtiable sync, and save-point tracking"]
- C["SelectionService
Stride.Core.Assets.Editor
sources/editor/Stride.Core.Assets.Editor/Services/
Separate unbounded stack; records selection snapshots"]
+ C["SelectionService
Stride.Core.Assets.Editor.Wpf
sources/editor/Stride.Core.Assets.Editor.Wpf/Services/
Separate unbounded stack; records selection snapshots"]
A -. "uses" .-> B
A -. "uses" .-> C
diff --git a/docs/editor/custom-editor.md b/docs/editor/custom-editor.md
index 7a1ab44a6c..2ac13b4e50 100644
--- a/docs/editor/custom-editor.md
+++ b/docs/editor/custom-editor.md
@@ -177,6 +177,6 @@ private async Task DoSomethingAsync()
| File | Path |
|---|---|
-| `%%AssetName%%EditorViewModel.cs` | `sources/editor/Stride.Assets.Presentation/AssetEditors/%%EditorName%%/ViewModels/` |
-| `%%AssetName%%EditorView.xaml` | `sources/editor/Stride.Assets.Presentation/AssetEditors/%%EditorName%%/Views/` |
-| `%%AssetName%%EditorView.xaml.cs` | `sources/editor/Stride.Assets.Presentation/AssetEditors/%%EditorName%%/Views/` |
+| `%%AssetName%%EditorViewModel.cs` | `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/%%EditorName%%/ViewModels/` |
+| `%%AssetName%%EditorView.xaml` | `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/%%EditorName%%/Views/` |
+| `%%AssetName%%EditorView.xaml.cs` | `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/%%EditorName%%/Views/` |
diff --git a/docs/editor/editors.md b/docs/editor/editors.md
index c164268452..02338874e5 100644
--- a/docs/editor/editors.md
+++ b/docs/editor/editors.md
@@ -2,7 +2,7 @@
## Overview
-All concrete asset editors live in `Stride.Assets.Presentation` under `sources/editor/Stride.Assets.Presentation/AssetEditors/`. Most editor folders contain a `ViewModels/` subdirectory and a `Views/` subdirectory; ScriptEditor and VisualScriptEditor are exceptions where files sit flat at the folder root. The table below is the entry point for locating any existing editor.
+All concrete asset editors live in `Stride.Assets.Presentation.Wpf` under `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/`. Most editor folders contain a `ViewModels/` subdirectory and a `Views/` subdirectory; ScriptEditor and VisualScriptEditor are exceptions where files sit flat at the folder root. The table below is the entry point for locating any existing editor.
## Editors
diff --git a/docs/editor/navigation.md b/docs/editor/navigation.md
index 15e9331839..7f5bb15865 100644
--- a/docs/editor/navigation.md
+++ b/docs/editor/navigation.md
@@ -8,10 +8,10 @@
| Type | Assembly | Purpose |
|---|---|---|
-| `SelectionService` | `Stride.Core.Assets.Editor`
`sources/editor/Stride.Core.Assets.Editor/Services/` | Owns the navigation stack; exposes `NavigateBackward` / `NextSelection`; registers observable collections to track |
+| `SelectionService` | `Stride.Core.Assets.Editor.Wpf`
`sources/editor/Stride.Core.Assets.Editor.Wpf/Services/` | Owns the navigation stack; exposes `NavigateBackward` / `NextSelection`; registers observable collections to track |
| `SelectionState` | same | Snapshot of all registered collection states at a point in time; `HasValidSelection()` checks whether the referenced objects still exist |
| `SelectionScope` | same | A group of `INotifyCollectionChanged` collections tracked together as a unit; always obtained from `RegisterSelectionScope()`, never constructed directly |
-| `SelectionOperation` | `sources/editor/Stride.Core.Assets.Editor/Services/SelectionOperation.cs` | `Operation` subclass pairing a previous and next `SelectionState`; `Rollback` restores previous, `Rollforward` restores next |
+| `SelectionOperation` | `sources/editor/Stride.Core.Assets.Editor.Wpf/Services/SelectionOperation.cs` | `Operation` subclass pairing a previous and next `SelectionState`; `Rollback` restores previous, `Rollforward` restores next |
## How It Works
@@ -49,4 +49,4 @@ The two systems share `ITransactionStack` and `Operation` from `Stride.Core.Tran
## Assembly Placement
-`SelectionService`, `SelectionState`, `SelectionScope`, and `SelectionOperation` all live in `Stride.Core.Assets.Editor` at `sources/editor/Stride.Core.Assets.Editor/Services/`.
+`SelectionService`, `SelectionState`, `SelectionScope`, and `SelectionOperation` all live in `Stride.Core.Assets.Editor.Wpf` at `sources/editor/Stride.Core.Assets.Editor.Wpf/Services/`.
diff --git a/docs/editor/projects.md b/docs/editor/projects.md
index 7b53a7d8cf..a58a1cd2a3 100644
--- a/docs/editor/projects.md
+++ b/docs/editor/projects.md
@@ -22,14 +22,14 @@ Assembly names match project names throughout; the "same" shorthand in the Assem
| `Stride.Core.Presentation` | same | No | MVVM base classes (`ViewModelBase`, `DispatcherViewModel`), service interfaces (`IDispatcherService`), commands, dirtiables |
| `Stride.Core.Presentation.Wpf` | same | Yes | WPF controls, converters, behaviors, `WpfDispatcherService` |
| `Stride.Core.Presentation.Quantum` | same | No | Quantum-to-ViewModel binding — `INodePresenter`, node presenter updater infrastructure; platform-agnostic layer consumed by the WPF property grid |
-| `Stride.Core.Presentation.Graph` | same | Yes | Node-graph visualization controls (used by GraphicsCompositor editor) |
-| `Stride.Core.Presentation.Dialogs` | same | Yes | Dialog services and file picker implementations |
-| `Stride.Core.Assets.Editor` | same | Yes* | Base editor infrastructure: `AssetEditorViewModel`, `IEditorView`, `AssetsEditorPlugin`, `SelectionService`, `IUndoRedoService`, registration attributes; *project targets WPF but ViewModel base classes are platform-agnostic |
-| `Stride.Assets.Presentation` | same | Yes | All concrete asset editors (ViewModels + Views), `StrideDefaultAssetsPlugin`, node presenter updaters |
-| `Stride.Editor` | same | Yes | Core editor wiring and game-editor infrastructure |
+| `Stride.Core.Presentation.Wpf.Graph` | same | Yes | Node-graph visualization controls (used by GraphicsCompositor editor) |
+| `Stride.Core.Presentation.Wpf.Dialogs` | same | Yes | Dialog services and file picker implementations |
+| `Stride.Core.Assets.Editor.Wpf` | same | Yes* | Base editor infrastructure: `AssetEditorViewModel`, `IEditorView`, `AssetsEditorPlugin`, `SelectionService`, `IUndoRedoService`, registration attributes; *project targets WPF but ViewModel base classes are platform-agnostic |
+| `Stride.Assets.Presentation.Wpf` | same | Yes | All concrete asset editors (ViewModels + Views), `StrideDefaultAssetsPlugin`, node presenter updaters |
+| `Stride.Editor.Wpf` | same | Yes | Core editor wiring and game-editor infrastructure |
| `Stride.GameStudio` | same | Yes | Shell, `AssetEditorsManager`, `PluginService`, main window |
## Where to Put New Code
-- **New ViewModel code** → `Stride.Assets.Presentation`, under `sources/editor/Stride.Assets.Presentation/AssetEditors/%%EditorName%%/ViewModels/`
+- **New ViewModel code** → `Stride.Assets.Presentation.Wpf`, under `sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/%%EditorName%%/ViewModels/`
- **New View / XAML code** → same project, `AssetEditors/%%EditorName%%/Views/`
diff --git a/docs/editor/undo-redo.md b/docs/editor/undo-redo.md
index 82ba1faf17..ae53f6bab0 100644
--- a/docs/editor/undo-redo.md
+++ b/docs/editor/undo-redo.md
@@ -13,7 +13,7 @@ Two layers sit between a mutation and the undo/redo stack:
| Transaction core | `Stride.Core.Design`
`sources/core/Stride.Core.Design/Transactions/` | `ITransactionStack`, `Transaction`, `Operation`, `IMergeableOperation` | Generic bounded stack and reversible operation primitives |
| Presentation service | `Stride.Core.Presentation`
`sources/presentation/Stride.Core.Presentation/` | `IUndoRedoService`, `DirtyingOperation`, `AnonymousDirtyingOperation`, `IDirtiable`, `DirtiableManager` | Service wrapper with human-readable names, dirty-flag integration, and save snapshots |
-Editor-specific operations (`ContentValueChangeOperation`) live in `Stride.Core.Assets.Editor` (`sources/editor/Stride.Core.Assets.Editor/Quantum/`) and extend the base model with Quantum node references.
+Editor-specific operations (`ContentValueChangeOperation`) live in `Stride.Core.Assets.Editor.Wpf` (`sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/`) and extend the base model with Quantum node references.
## `IUndoRedoService`
@@ -61,7 +61,7 @@ using (var transaction = UndoRedoService.CreateTransaction())
For operations used in multiple places or that benefit from consecutive-edit merging, subclass `DirtyingOperation`:
```csharp
-// sources/editor/Stride.Assets.Presentation/YourFeature/%%OperationName%%Operation.cs
+// sources/editor/Stride.Assets.Presentation.Wpf/YourFeature/%%OperationName%%Operation.cs
using Stride.Core.Presentation.Dirtiables;
using Stride.Core.Transactions;
@@ -108,7 +108,7 @@ internal sealed class %%OperationName%%Operation : DirtyingOperation, IMergeable
`DirtyingOperation` declares `protected abstract void Undo()` and `protected abstract void Redo()` — implement only those two. The `Dirtiables` constructor parameter is forwarded to the base class and used by `DirtiableManager`.
-`IMergeableOperation` is optional. For the canonical implementation, see `ContentValueChangeOperation` at `sources/editor/Stride.Core.Assets.Editor/Quantum/ContentValueChangeOperation.cs` — it merges consecutive value edits on the same Quantum node index.
+`IMergeableOperation` is optional. For the canonical implementation, see `ContentValueChangeOperation` at `sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/ContentValueChangeOperation.cs` — it merges consecutive value edits on the same Quantum node index.
## `IDirtiable` and Dirty Flags
@@ -135,5 +135,5 @@ Manual `PushOperation` is only required for mutations that bypass the node graph
| `ITransactionStack`, `Transaction`, `Operation`, `IMergeableOperation` | `Stride.Core.Design` | `sources/core/Stride.Core.Design/Transactions/` |
| `IUndoRedoService`, `DirtyingOperation`, `AnonymousDirtyingOperation` | `Stride.Core.Presentation` | `sources/presentation/Stride.Core.Presentation/Services/` and `Dirtiables/` |
| `IDirtiable`, `DirtiableManager` | `Stride.Core.Presentation` | `sources/presentation/Stride.Core.Presentation/Dirtiables/` |
-| `ContentValueChangeOperation` | `Stride.Core.Assets.Editor` | `sources/editor/Stride.Core.Assets.Editor/Quantum/` |
-| Your custom operation | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/YourFeature/` |
+| `ContentValueChangeOperation` | `Stride.Core.Assets.Editor.Wpf` | `sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/` |
+| Your custom operation | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/YourFeature/` |
diff --git a/docs/launcher/cross-platform.md b/docs/launcher/cross-platform.md
index 86f2c677cd..f7ac8bb5e8 100644
--- a/docs/launcher/cross-platform.md
+++ b/docs/launcher/cross-platform.md
@@ -46,7 +46,7 @@ Both paths are implemented:
## Settings paths
-All config paths go through `EditorPath` (linked file from `Stride.Core.Assets.Editor`). `EditorPath.UserDataPath` resolves to:
+All config paths go through `EditorPath` (linked file from `Stride.Core.Assets.Editor.Wpf`). `EditorPath.UserDataPath` resolves to:
- `%LocalAppData%\Stride\` on Windows
- `$XDG_DATA_HOME/Stride/` (or `~/.local/share/Stride/`) on Linux
diff --git a/docs/launcher/projects.md b/docs/launcher/projects.md
index 069a10a1ba..f8b1528119 100644
--- a/docs/launcher/projects.md
+++ b/docs/launcher/projects.md
@@ -53,7 +53,7 @@ A few source files are linked (``) into `Str
| Linked file | Origin | Used for |
|---|---|---|
-| `Editor/EditorPath.cs` | [sources/editor/Stride.Core.Assets.Editor/EditorPath.cs](../../sources/editor/Stride.Core.Assets.Editor/EditorPath.cs) | Resolves `EditorPath.UserDataPath`, `EditorPath.DefaultTempPath`, etc. for settings and the single-instance lock |
+| `Editor/EditorPath.cs` | [sources/editor/Stride.Core.Assets.Editor.Wpf/EditorPath.cs](../../sources/editor/Stride.Core.Assets.Editor.Wpf/EditorPath.cs) | Resolves `EditorPath.UserDataPath`, `EditorPath.DefaultTempPath`, etc. for settings and the single-instance lock |
| `Packages/PackageSessionHelper.Solution.cs` | [sources/assets/Stride.Core.Assets/PackageSessionHelper.Solution.cs](../../sources/assets/Stride.Core.Assets/PackageSessionHelper.Solution.cs) | Parses `.sln` files to discover the Stride version used by a recent project |
| `Stride.Core.MostRecentlyUsedFiles.projitems` (Shared) | [sources/editor/Stride.Core.MostRecentlyUsedFiles](../../sources/editor/Stride.Core.MostRecentlyUsedFiles/) | Reads the Game Studio MRU list to populate the "Recent projects" tab |
diff --git a/docs/launcher/settings.md b/docs/launcher/settings.md
index 7d76c3d2b1..817d3abaae 100644
--- a/docs/launcher/settings.md
+++ b/docs/launcher/settings.md
@@ -44,7 +44,7 @@ The MRU list is wrapped in `MostRecentlyUsedFileCollection` from the shared [Str
## EditorPath
-Path resolution goes through [Stride.Core.Assets.Editor.EditorPath](../../sources/editor/Stride.Core.Assets.Editor/EditorPath.cs), linked directly into the launcher project. On Windows this resolves to `%LocalAppData%\Stride\`; on Linux/macOS it follows XDG conventions.
+Path resolution goes through [Stride.Core.Assets.Editor.EditorPath](../../sources/editor/Stride.Core.Assets.Editor.Wpf/EditorPath.cs), linked directly into the launcher project. On Windows this resolves to `%LocalAppData%\Stride\`; on Linux/macOS it follows XDG conventions.
## First-install tasks
diff --git a/docs/quantum/README.md b/docs/quantum/README.md
index 87387316af..90267d3187 100644
--- a/docs/quantum/README.md
+++ b/docs/quantum/README.md
@@ -9,8 +9,8 @@ flowchart TD
A["Stride.Core.Quantum
sources/presentation/Stride.Core.Quantum/
Live node graph over .NET objects"]
B["Stride.Core.Assets.Quantum
sources/assets/Stride.Core.Assets.Quantum/
Override tracking, base-asset linking"]
C["Stride.Core.Presentation.Quantum
sources/presentation/Stride.Core.Presentation.Quantum/
INodePresenter — property grid view model"]
- D["Stride.Core.Assets.Editor
sources/editor/Stride.Core.Assets.Editor/Quantum/
IAssetNodePresenter, AssetNodePresenterUpdaterBase"]
- E["Stride.Assets.Presentation
sources/editor/Stride.Assets.Presentation/NodePresenters/
Concrete updaters per asset type"]
+ D["Stride.Core.Assets.Editor.Wpf
sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/
IAssetNodePresenter, AssetNodePresenterUpdaterBase"]
+ E["Stride.Assets.Presentation
sources/editor/Stride.Assets.Presentation.Wpf/NodePresenters/
Concrete updaters per asset type"]
A --> B
B --> C
diff --git a/docs/quantum/property-grid.md b/docs/quantum/property-grid.md
index a4dbf87f1f..0fef3a6828 100644
--- a/docs/quantum/property-grid.md
+++ b/docs/quantum/property-grid.md
@@ -52,7 +52,7 @@ When a property grid opens for an asset, `AssetNodePresenterFactory` runs the fo
The tree is rebuilt whenever a node's value changes (so `UpdateNode` is called again for affected nodes, and `FinalizeTree` is called again for the whole tree).
-**Updater registration:** Updaters are NOT auto-discovered. You must register your updater explicitly in the plugin class for your assembly. For engine assets in `Stride.Assets.Presentation`, register in `StrideDefaultAssetsPlugin` (`sources/editor/Stride.Assets.Presentation/StrideDefaultAssetsPlugin.cs`) inside its constructor:
+**Updater registration:** Updaters are NOT auto-discovered. You must register your updater explicitly in the plugin class for your assembly. For engine assets in `Stride.Assets.Presentation`, register in `StrideDefaultAssetsPlugin` (`sources/editor/Stride.Assets.Presentation.Wpf/StrideDefaultAssetsPlugin.cs`) inside its constructor:
```csharp
// In StrideDefaultAssetsPlugin constructor:
@@ -64,7 +64,7 @@ RegisterNodePresenterUpdater(new %%AssetName%%AssetNodeUpdater());
Subclass `AssetNodePresenterUpdaterBase` and override `UpdateNode` and/or `FinalizeTree`. Note that the public `UpdateNode(INodePresenter)` and `FinalizeTree(INodePresenter)` methods (which the framework calls) are `sealed` in `AssetNodePresenterUpdaterBase`. Only the `protected` overloads that take `IAssetNodePresenter` are open for override — these are what you implement:
```csharp
-// sources/editor/Stride.Assets.Presentation/NodePresenters/Updaters/%%AssetName%%AssetNodeUpdater.cs
+// sources/editor/Stride.Assets.Presentation.Wpf/NodePresenters/Updaters/%%AssetName%%AssetNodeUpdater.cs
using Stride.Core.Assets.Editor.Quantum.NodePresenters;
using Stride.Core.Assets.Editor.Quantum.NodePresenters.Keys;
using Stride.Assets.%%AssetName%%;
@@ -197,6 +197,6 @@ root[sizeCategory][nameof(TextureAsset.Height)]
| Type | Assembly | Location |
|---|---|---|
| `INodePresenter`, `INodePresenterUpdater` interfaces | `Stride.Core.Presentation.Quantum` | `sources/presentation/Stride.Core.Presentation.Quantum/Presenters/` |
-| `IAssetNodePresenter`, `AssetNodePresenterUpdaterBase` | `Stride.Core.Assets.Editor` | `sources/editor/Stride.Core.Assets.Editor/Quantum/NodePresenters/` |
-| Attached property key classes (`NumericData`, `DisplayData`, `CategoryData`) | `Stride.Core.Assets.Editor` | `sources/editor/Stride.Core.Assets.Editor/Quantum/NodePresenters/Keys/` |
-| Your `%%AssetName%%AssetNodeUpdater` | `Stride.Assets.Presentation` | `sources/editor/Stride.Assets.Presentation/NodePresenters/Updaters/` |
+| `IAssetNodePresenter`, `AssetNodePresenterUpdaterBase` | `Stride.Core.Assets.Editor.Wpf` | `sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/NodePresenters/` |
+| Attached property key classes (`NumericData`, `DisplayData`, `CategoryData`) | `Stride.Core.Assets.Editor.Wpf` | `sources/editor/Stride.Core.Assets.Editor.Wpf/Quantum/NodePresenters/Keys/` |
+| Your `%%AssetName%%AssetNodeUpdater` | `Stride.Assets.Presentation.Wpf` | `sources/editor/Stride.Assets.Presentation.Wpf/NodePresenters/Updaters/` |
diff --git a/sources/core/Stride.Core.Design/Properties/AssemblyInfo.cs b/sources/core/Stride.Core.Design/Properties/AssemblyInfo.cs
index d0d856f7cf..a1cd472d63 100644
--- a/sources/core/Stride.Core.Design/Properties/AssemblyInfo.cs
+++ b/sources/core/Stride.Core.Design/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@
[assembly: InternalsVisibleTo("Stride.Engine.Step1")]
[assembly: InternalsVisibleTo("Stride.Core.Tests")]
[assembly: InternalsVisibleTo("Stride.Core.Design.Tests")]
-[assembly: InternalsVisibleTo("Stride.Core.Presentation.Tests")]
+[assembly: InternalsVisibleTo("Stride.Core.Presentation.Wpf.Tests")]
diff --git a/sources/core/Stride.Core.Translation/TranslationManager.cs b/sources/core/Stride.Core.Translation/TranslationManager.cs
index f6760ed1ac..5215bde278 100644
--- a/sources/core/Stride.Core.Translation/TranslationManager.cs
+++ b/sources/core/Stride.Core.Translation/TranslationManager.cs
@@ -3,6 +3,7 @@
using System.Globalization;
using System.Reflection;
+using System.Runtime.CompilerServices;
namespace Stride.Core.Translation;
@@ -25,16 +26,16 @@ private sealed class TranslationManagerImpl : ITranslationManager
///
public CultureInfo CurrentLanguage
{
- get => CultureInfo.CurrentUICulture;
+ get;
set
{
- if (Equals(CultureInfo.CurrentUICulture, value))
+ if (value is null || Equals(field, value))
return;
- CultureInfo.CurrentUICulture = CultureInfo.DefaultThreadCurrentUICulture = value;
+ field = CultureInfo.CurrentUICulture = CultureInfo.DefaultThreadCurrentUICulture = value;
OnLanguageChanged();
}
- }
+ } = CultureInfo.CurrentUICulture;
///
public event EventHandler? LanguageChanged;
@@ -45,6 +46,7 @@ public CultureInfo CurrentLanguage
///
public string GetString(string text)
{
+ EnsureUICulture();
return GetString(text, Assembly.GetCallingAssembly());
}
@@ -52,12 +54,14 @@ public string GetString(string text)
public string GetString(string text, Assembly assembly)
{
ArgumentNullException.ThrowIfNull(assembly);
+ EnsureUICulture();
return GetProvider(assembly)?.GetString(text) ?? text;
}
///
public string GetPluralString(string text, string textPlural, long count)
{
+ EnsureUICulture();
return GetPluralString(text, textPlural, count, Assembly.GetCallingAssembly());
}
@@ -65,12 +69,14 @@ public string GetPluralString(string text, string textPlural, long count)
public string GetPluralString(string text, string textPlural, long count, Assembly assembly)
{
ArgumentNullException.ThrowIfNull(assembly);
+ EnsureUICulture();
return GetProvider(assembly)?.GetPluralString(text, textPlural, count) ?? text;
}
///
public string GetParticularString(string context, string text)
{
+ EnsureUICulture();
return GetParticularString(context, text, Assembly.GetCallingAssembly());
}
@@ -78,12 +84,14 @@ public string GetParticularString(string context, string text)
public string GetParticularString(string context, string text, Assembly assembly)
{
ArgumentNullException.ThrowIfNull(assembly);
+ EnsureUICulture();
return GetProvider(assembly)?.GetParticularString(context, text) ?? text;
}
///
public string GetParticularPluralString(string context, string text, string textPlural, long count)
{
+ EnsureUICulture();
return GetParticularPluralString(context, text, textPlural, count, Assembly.GetCallingAssembly());
}
@@ -91,6 +99,7 @@ public string GetParticularPluralString(string context, string text, string text
public string GetParticularPluralString(string context, string text, string textPlural, long count, Assembly assembly)
{
ArgumentNullException.ThrowIfNull(assembly);
+ EnsureUICulture();
return GetProvider(assembly)?.GetParticularPluralString(context, text, textPlural, count) ?? text;
}
@@ -107,6 +116,16 @@ public void RegisterProvider(ITranslationProvider provider)
return provider;
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ private void EnsureUICulture()
+ {
+#if DEBUG
+ if (CultureInfo.CurrentUICulture != CurrentLanguage)
+ System.Diagnostics.Debugger.Break();
+#endif // DEBUG
+ CultureInfo.CurrentUICulture = CurrentLanguage;
+ }
+
private void OnLanguageChanged()
{
LanguageChanged?.Invoke(this, EventArgs.Empty);
diff --git a/sources/editor/Stride.Assets.Presentation/AssemblyReloading/GameStudioAssemblyReloader.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/GameStudioAssemblyReloader.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssemblyReloading/GameStudioAssemblyReloader.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/GameStudioAssemblyReloader.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssemblyReloading/ReloadAssembliesOperation.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/ReloadAssembliesOperation.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssemblyReloading/ReloadAssembliesOperation.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/ReloadAssembliesOperation.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssemblyReloading/UnloadAssembliesOperation.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/UnloadAssembliesOperation.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssemblyReloading/UnloadAssembliesOperation.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssemblyReloading/UnloadAssembliesOperation.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors.cd b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors.cd
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors.cd
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors.cd
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/Services/AssetCompositeHierarchyEditorController.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/Services/AssetCompositeHierarchyEditorController.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/Services/AssetCompositeHierarchyEditorController.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/Services/AssetCompositeHierarchyEditorController.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeEditorViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeEditorViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeEditorViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeEditorViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeHierarchyEditorViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeHierarchyEditorViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeHierarchyEditorViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeHierarchyEditorViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeItemViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeItemViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeItemViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/AssetCompositeItemViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorDesignPartViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorDesignPartViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorDesignPartViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorDesignPartViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorGamePartViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorGamePartViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorGamePartViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/ViewModels/IEditorGamePartViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/Views/AssetCompositeHierarchyTreeViewHelper.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/Views/AssetCompositeHierarchyTreeViewHelper.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetCompositeGameEditor/Views/AssetCompositeHierarchyTreeViewHelper.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetCompositeGameEditor/Views/AssetCompositeHierarchyTreeViewHelper.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/AssetHighlighter.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/AssetHighlighter.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/AssetHighlighter.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/AssetHighlighter.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/AssetHighlighterAttribute.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/AssetHighlighterAttribute.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/AssetHighlighterAttribute.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/AssetHighlighterAttribute.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/MaterialAssetHighlighter.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/MaterialAssetHighlighter.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/MaterialAssetHighlighter.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/MaterialAssetHighlighter.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/ModelAssetHighlighter.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/ModelAssetHighlighter.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/ModelAssetHighlighter.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/ModelAssetHighlighter.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/TextureAssetHighlighter.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/TextureAssetHighlighter.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/AssetHighlighters/TextureAssetHighlighter.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/AssetHighlighters/TextureAssetHighlighter.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/CameraOrientation.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/CameraOrientation.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/CameraOrientation.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/CameraOrientation.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityComponentSourceCodeResolver.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityComponentSourceCodeResolver.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityComponentSourceCodeResolver.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityComponentSourceCodeResolver.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EditorRenderMode.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EditorRenderMode.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EditorRenderMode.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EditorRenderMode.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/AudioEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/AudioEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/AudioEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/AudioEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/CameraEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/CameraEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/CameraEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/CameraEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactoryCategory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactoryCategory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactoryCategory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/EntityFactoryCategory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/IEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/IEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/IEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/IEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/LightEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/LightEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/LightEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/LightEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/ModelEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/ModelEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/ModelEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/ModelEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/NavigationEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/NavigationEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/NavigationEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/NavigationEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/ParticleSystemEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/ParticleSystemEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/ParticleSystemEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/ParticleSystemEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/TwoDimensionEntityFactory.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/TwoDimensionEntityFactory.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/EntityFactories/TwoDimensionEntityFactory.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/EntityFactories/TwoDimensionEntityFactory.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameCameraPreviewService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameCameraPreviewService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameCameraPreviewService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameCameraPreviewService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentChangeWatcherService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentChangeWatcherService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentChangeWatcherService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentChangeWatcherService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentGizmoService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentGizmoService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentGizmoService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameComponentGizmoService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameCubemapService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameCubemapService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameCubemapService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameCubemapService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityCameraService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityCameraService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityCameraService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityCameraService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntitySelectionService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntitySelectionService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntitySelectionService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntitySelectionService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityTransformService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityTransformService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityTransformService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameEntityTransformService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameGraphicsCompositorService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameGraphicsCompositorService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameGraphicsCompositorService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameGraphicsCompositorService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameLightProbeGizmoService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameLightProbeGizmoService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameLightProbeGizmoService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameLightProbeGizmoService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameMaterialHighlightService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameMaterialHighlightService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameMaterialHighlightService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameMaterialHighlightService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameModelSelectionService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameModelSelectionService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameModelSelectionService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameModelSelectionService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameNavigationMeshService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameNavigationMeshService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameNavigationMeshService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameNavigationMeshService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameParticleComponentChangeWatcherService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameParticleComponentChangeWatcherService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameParticleComponentChangeWatcherService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameParticleComponentChangeWatcherService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameRenderModeService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameRenderModeService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EditorGameRenderModeService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EditorGameRenderModeService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EntityHierarchyEditorGame.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EntityHierarchyEditorGame.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EntityHierarchyEditorGame.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EntityHierarchyEditorGame.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EntitySelectionEventArgs.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EntitySelectionEventArgs.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/EntitySelectionEventArgs.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/EntitySelectionEventArgs.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameComponentGizmoService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameComponentGizmoService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameComponentGizmoService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameComponentGizmoService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameEntitySelectionService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameEntitySelectionService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameEntitySelectionService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameEntitySelectionService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameMaterialHighlightService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameMaterialHighlightService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/IEditorGameMaterialHighlightService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/IEditorGameMaterialHighlightService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/NavigationMeshManager.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/NavigationMeshManager.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Game/NavigationMeshManager.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Game/NavigationMeshManager.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/EntityHierarchyEditorController.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/EntityHierarchyEditorController.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/EntityHierarchyEditorController.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/EntityHierarchyEditorController.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameComponentGizmoViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameComponentGizmoViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameComponentGizmoViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameComponentGizmoViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameCubemapService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameCubemapService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameCubemapService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameCubemapService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityCameraViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityCameraViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityCameraViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityCameraViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityTransformViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityTransformViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityTransformViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameEntityTransformViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameLightProbeService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameLightProbeService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameLightProbeService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameLightProbeService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameMaterialHighlightViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameMaterialHighlightViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameMaterialHighlightViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameMaterialHighlightViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameNavigationViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameNavigationViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameNavigationViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameNavigationViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeViewModelService.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeViewModelService.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeViewModelService.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Services/IEditorGameRenderModeViewModelService.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddAssetPolicyBase.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddAssetPolicyBase.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddAssetPolicyBase.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddAssetPolicyBase.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddEntityComponentFileAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddEntityComponentFileAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddEntityComponentFileAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddEntityComponentFileAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddModelAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddModelAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddModelAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddModelAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddPrefabAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddPrefabAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddPrefabAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddPrefabAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteSheetAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteSheetAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteSheetAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteSheetAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteStudioModelAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteStudioModelAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteStudioModelAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddSpriteStudioModelAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddTextureAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddTextureAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddTextureAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddTextureAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddUIPageAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddUIPageAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddUIPageAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddUIPageAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddVideoAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddVideoAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddVideoAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/AddVideoAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/IAddAssetPolicy.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/IAddAssetPolicy.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/IAddAssetPolicy.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/AddAssetPolicies/IAddAssetPolicy.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorLightingViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorLightingViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorLightingViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorLightingViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationGroupViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationGroupViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationGroupViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationGroupViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorNavigationViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorRenderingViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorRenderingViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EditorRenderingViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EditorRenderingViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderOperation.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderOperation.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderOperation.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderOperation.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityFolderViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityGizmosViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityGizmosViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityGizmosViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityGizmosViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyEditorViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyEditorViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyEditorViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyEditorViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementChangePropagator.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementChangePropagator.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementChangePropagator.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementChangePropagator.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyElementViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyItemViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyItemViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyItemViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyItemViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyRootViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyRootViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyRootViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityHierarchyRootViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityTransformationViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityTransformationViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityTransformationViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityTransformationViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/EntityViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/EntityViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/GizmoViewModel.cs b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/GizmoViewModel.cs
similarity index 100%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/ViewModels/GizmoViewModel.cs
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/ViewModels/GizmoViewModel.cs
diff --git a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml
similarity index 99%
rename from sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml
rename to sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml
index bfd9ebce33..7e7f688b90 100644
--- a/sources/editor/Stride.Assets.Presentation/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml
+++ b/sources/editor/Stride.Assets.Presentation.Wpf/AssetEditors/EntityHierarchyEditor/Views/EntityHierarchyEditorView.xaml
@@ -22,8 +22,8 @@
-
-
+
+