diff --git a/src/.editorconfig b/.editorconfig
similarity index 99%
rename from src/.editorconfig
rename to .editorconfig
index ea1e3c700..b10408cc1 100644
--- a/src/.editorconfig
+++ b/.editorconfig
@@ -27,7 +27,7 @@ dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
-dotnet_style_explicit_tuple_names = false:silent
+dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
deleted file mode 100644
index 0d19c8d08..000000000
--- a/.github/workflows/CI.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: DotNet Main
-
-on:
- push:
- branches: [main]
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v3
- - uses: microsoft/setup-msbuild@v1.3
- with:
- msbuild-architecture: x64
- - uses: nuget/setup-nuget@v1
- with:
- nuget-api-key: ${{ secrets.NUGET_API_KEY }}
-
- - name: Restore dependencies
- run: nuget restore src\Wpf.Ui.sln
-
- - name: Build the solution
- run: msbuild src\Wpf.Ui.sln -p:Configuration=Release -p:Platform="Any CPU" -p:GITHUB_ACTIONS=True -p:ContinuousIntegrationBuild=true -m -graph -isolate
-
- - name: Publish the package to NuGet.org
- run: nuget push src\Wpf.Ui\bin\Release\*.nupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
-
- - name: Publish the symbols to NuGet.org
- run: nuget push src\Wpf.Ui\bin\Release\*.snupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
diff --git a/.github/workflows/DV.yml b/.github/workflows/DV.yml
deleted file mode 100644
index 235ba09ed..000000000
--- a/.github/workflows/DV.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: DotNet Development
-
-on:
- pull_request:
- branches: [development]
- push:
- branches: [development]
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v3
- - uses: microsoft/setup-msbuild@v1.3
- with:
- msbuild-architecture: x64
- - uses: nuget/setup-nuget@v1
-
- - name: Restore dependencies
- run: nuget restore src\Wpf.Ui.Gallery.sln
-
- - name: Build the solution
- run: msbuild src\Wpf.Ui.Gallery.sln -p:Configuration=Release -m -graph -isolate
-
- - name: Publish .NET 7 WPF UI Gallery
- uses: actions/upload-artifact@v3
- id: publish_gallery
- with:
- name: WPF UI Gallery
- path: |
- src\Wpf.Ui.Gallery\bin\Release\net7.0-windows10.0.22621.0
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index e4239b946..e630c64da 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -1,30 +1,28 @@
-name: DotNet Docs
+name: wpfui-docs
on:
- pull_request:
- branches: [development]
- push:
- branches: [development]
+ push:
+ branches: [main]
- workflow_dispatch:
+ workflow_dispatch:
jobs:
- publish-docs:
- runs-on: ubuntu-latest
- steps:
- - name: Chekout
- uses: actions/checkout@v3
- - name: Dotnet Setup
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 7.x
+ publish_docs:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Chekout
+ uses: actions/checkout@v3
+ - name: Dotnet Setup
+ uses: actions/setup-dotnet@v3
+ with:
+ dotnet-version: 7.x
- - run: dotnet tool update -g docfx
- - run: docfx docs/docfx.json
+ - run: dotnet tool update -g docfx
+ - run: docfx docs/docfx.json
- - name: Deploy
+ - name: Deploy
- uses: peaceiris/actions-gh-pages@v3
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: docs/_site
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: docs/_site
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
index 356bbb911..b20f7280c 100644
--- a/.github/workflows/labeler.yml
+++ b/.github/workflows/labeler.yml
@@ -1,14 +1,15 @@
-name: "Pull Request Labeler"
+name: wpfui-labeler
+
on:
- - pull_request_target
+ - pull_request_target
jobs:
- triage:
- permissions:
- contents: read
- pull-requests: write
- runs-on: ubuntu-latest
- steps:
- - uses: actions/labeler@v4
- with:
- repo-token: "${{ secrets.GITHUB_TOKEN }}"
+ triage:
+ permissions:
+ contents: read
+ pull-requests: write
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/labeler@v4
+ with:
+ repo-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
index ef5c5a684..57d5db8e6 100644
--- a/.github/workflows/lock.yml
+++ b/.github/workflows/lock.yml
@@ -1,20 +1,20 @@
-name: "Lock"
+name: wpfui-lock
on:
- schedule:
- - cron: "0 0 * * *"
+ schedule:
+ - cron: "0 0 * * *"
jobs:
- lock:
- runs-on: ubuntu-latest
- steps:
- - uses: dessant/lock-threads@v4
- with:
- # https://github.com/dessant/lock-threads
- github-token: ${{ github.token }}
- issue-inactive-days: "90"
- exclude-issue-created-before: ""
- exclude-any-issue-labels: "keep-unlocked, status:awaiting response"
- add-issue-labels: "locked-due-to-inactivity"
- issue-comment: ""
- issue-lock-reason: "resolved"
+ lock:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: dessant/lock-threads@v4
+ with:
+ # https://github.com/dessant/lock-threads
+ github-token: ${{ github.token }}
+ issue-inactive-days: "90"
+ exclude-issue-created-before: ""
+ exclude-any-issue-labels: "keep-unlocked, status:awaiting response"
+ add-issue-labels: "locked-due-to-inactivity"
+ issue-comment: ""
+ issue-lock-reason: "resolved"
diff --git a/.github/workflows/wpf-ui-pr-deploy.yaml b/.github/workflows/wpf-ui-pr-deploy.yaml
new file mode 100644
index 000000000..a3a7bd7b1
--- /dev/null
+++ b/.github/workflows/wpf-ui-pr-deploy.yaml
@@ -0,0 +1,31 @@
+name: wpfui-pr-deploy
+
+on:
+ push:
+ branches: [main]
+
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: microsoft/setup-msbuild@v1.3
+ with:
+ msbuild-architecture: x64
+ - uses: nuget/setup-nuget@v1
+ with:
+ nuget-api-key: ${{ secrets.NUGET_API_KEY }}
+
+ - name: Restore dependencies
+ run: nuget restore Wpf.Ui.sln
+
+ - name: Build the solution
+ run: msbuild src\Wpf.Ui\Wpf.Ui.csproj -p:Configuration=Release -p:Platform="Any CPU" -p:GITHUB_ACTIONS=True -p:ContinuousIntegrationBuild=true -m -graph -isolate
+
+ - name: Publish the package to NuGet.org
+ run: nuget push src\Wpf.Ui\bin\Release\*.nupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
+
+ - name: Publish the symbols to NuGet.org
+ run: nuget push src\Wpf.Ui\bin\Release\*.snupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
diff --git a/.github/workflows/wpf-ui-pr-validator.yaml b/.github/workflows/wpf-ui-pr-validator.yaml
new file mode 100644
index 000000000..435e444ef
--- /dev/null
+++ b/.github/workflows/wpf-ui-pr-validator.yaml
@@ -0,0 +1,27 @@
+name: wpfui-pr-validator
+
+on:
+ pull_request:
+ branches: [development]
+ push:
+ branches: [development]
+
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: microsoft/setup-msbuild@v1.3
+ with:
+ msbuild-architecture: x64
+ - uses: nuget/setup-nuget@v1
+ with:
+ nuget-api-key: ${{ secrets.NUGET_API_KEY }}
+
+ - name: Restore dependencies
+ run: nuget restore Wpf.Ui.sln
+
+ - name: Build the solution
+ run: msbuild src\Wpf.Ui.Gallery\Wpf.Ui.Gallery.csproj -p:Configuration=Release -p:Platform="Any CPU" -p:GITHUB_ACTIONS=True -p:ContinuousIntegrationBuild=true -m -graph -isolate
diff --git a/src/.vsconfig b/.vsconfig
similarity index 100%
rename from src/.vsconfig
rename to .vsconfig
diff --git a/src/Directory.Build.props b/Directory.Build.props
similarity index 87%
rename from src/Directory.Build.props
rename to Directory.Build.props
index f173106e6..35d117344 100644
--- a/src/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,7 +1,7 @@
- 3.0.0-preview.2
+ 3.0.0-preview.3
11.0
true
@@ -35,4 +35,10 @@
+
+
+ <_Parameter1>$(MSBuildProjectName).UnitTests
+
+
+
diff --git a/src/Directory.Build.targets b/Directory.Build.targets
similarity index 100%
rename from src/Directory.Build.targets
rename to Directory.Build.targets
diff --git a/src/Directory.Packages.props b/Directory.Packages.props
similarity index 76%
rename from src/Directory.Packages.props
rename to Directory.Packages.props
index b3a77689d..d0fa0ef84 100644
--- a/src/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,17 +1,22 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Settings.XamlStyler b/Settings.XamlStyler
similarity index 100%
rename from src/Settings.XamlStyler
rename to Settings.XamlStyler
diff --git a/Wpf.Ui.Gallery.slnf b/Wpf.Ui.Gallery.slnf
new file mode 100644
index 000000000..c54c7c968
--- /dev/null
+++ b/Wpf.Ui.Gallery.slnf
@@ -0,0 +1,10 @@
+{
+ "solution": {
+ "path": "Wpf.Ui.sln",
+ "projects": [
+ "src\\Wpf.Ui.Gallery.Package\\Wpf.Ui.Gallery.Package.wapproj",
+ "src\\Wpf.Ui.Gallery\\Wpf.Ui.Gallery.csproj",
+ "src\\Wpf.Ui\\Wpf.Ui.csproj"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Wpf.Ui.Library.slnf b/Wpf.Ui.Library.slnf
new file mode 100644
index 000000000..d98bb204d
--- /dev/null
+++ b/Wpf.Ui.Library.slnf
@@ -0,0 +1,8 @@
+{
+ "solution": {
+ "path": "Wpf.Ui.sln",
+ "projects": [
+ "src\\Wpf.Ui\\Wpf.Ui.csproj"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Wpf.Ui.sln b/Wpf.Ui.sln
new file mode 100644
index 000000000..eaa8337d6
--- /dev/null
+++ b/Wpf.Ui.sln
@@ -0,0 +1,154 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32407.343
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{21DB16AA-40BB-428B-AFE8-DEF4E3F0DC49}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
+ Directory.Packages.props = Directory.Packages.props
+ nuget.config = nuget.config
+ README.md = README.md
+ Settings.XamlStyler = Settings.XamlStyler
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Gallery", "src\Wpf.Ui.Gallery\Wpf.Ui.Gallery.csproj", "{E55BFB14-9DA6-434A-8153-BFE124D71818}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui", "src\Wpf.Ui\Wpf.Ui.csproj", "{1ADC87D1-8963-4100-845A-18477824718E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.FontMapper", "src\Wpf.Ui.FontMapper\Wpf.Ui.FontMapper.csproj", "{50BAB8DE-6558-4E77-87E5-CD533CBBB72F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Demo.Mvvm", "src\Wpf.Ui.Demo.Mvvm\Wpf.Ui.Demo.Mvvm.csproj", "{DA4D97CC-4817-41D5-B517-DE53A2CDE113}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Demo.Simple", "src\Wpf.Ui.Demo.Simple\Wpf.Ui.Demo.Simple.csproj", "{3FB5104C-C6F5-452C-9713-F17E15D34271}"
+EndProject
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Wpf.Ui.Gallery.Package", "src\Wpf.Ui.Gallery.Package\Wpf.Ui.Gallery.Package.wapproj", "{50C713C3-555E-491F-87EE-C806BEC0579F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.UnitTests", "tests\Wpf.Ui.UnitTests\Wpf.Ui.UnitTests.csproj", "{AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{35AC6218-CBEA-4FDA-8CE1-D1EBD6FD8D4A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wpf.Ui.Extension", "src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj", "{1298D974-9D81-4A93-9374-EA6A0E723DEB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wpf.Ui.Mvvm.CompactNavigation.Template", "src\Wpf.Ui.Extension.Templates\Wpf.Ui.Mvvm.CompactNavigation\Wpf.Ui.Mvvm.CompactNavigation.Template.csproj", "{14D7431C-6CFF-4191-BB88-2B8D5F323A30}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wpf.Ui.Mvvm.FluentNavigation.Template", "src\Wpf.Ui.Extension.Templates\Wpf.Ui.Mvvm.FluentNavigation\Wpf.Ui.Mvvm.FluentNavigation.Template.csproj", "{08BE0726-8E3D-4624-AC9E-07816A14E906}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wpf.Ui.Mvvm.StoreNavigation.Template", "src\Wpf.Ui.Extension.Templates\Wpf.Ui.Mvvm.StoreNavigation\Wpf.Ui.Mvvm.StoreNavigation.Template.csproj", "{5F5E2630-513E-4A8D-BB64-0F6F574DD739}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Gallery.UnitTests", "tests\Wpf.Ui.Gallery.UnitTests\Wpf.Ui.Gallery.UnitTests.csproj", "{4059EB00-22B3-4EF9-A509-469CE8B0096D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x64.ActiveCfg = Debug|x64
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x64.Build.0 = Debug|x64
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|x64.ActiveCfg = Release|x64
+ {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|x64.Build.0 = Release|x64
+ {1ADC87D1-8963-4100-845A-18477824718E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1ADC87D1-8963-4100-845A-18477824718E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.ActiveCfg = Debug|x64
+ {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.Build.0 = Debug|x64
+ {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.ActiveCfg = Release|x64
+ {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.Build.0 = Release|x64
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.ActiveCfg = Debug|x64
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.Build.0 = Debug|x64
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.ActiveCfg = Release|x64
+ {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.Build.0 = Release|x64
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Debug|x64.ActiveCfg = Debug|x64
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Debug|x64.Build.0 = Debug|x64
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Release|x64.ActiveCfg = Release|x64
+ {DA4D97CC-4817-41D5-B517-DE53A2CDE113}.Release|x64.Build.0 = Release|x64
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Debug|x64.ActiveCfg = Debug|x64
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Debug|x64.Build.0 = Debug|x64
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Release|x64.ActiveCfg = Release|x64
+ {3FB5104C-C6F5-452C-9713-F17E15D34271}.Release|x64.Build.0 = Release|x64
+ {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|x64.ActiveCfg = Debug|x64
+ {50C713C3-555E-491F-87EE-C806BEC0579F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {50C713C3-555E-491F-87EE-C806BEC0579F}.Release|x64.ActiveCfg = Release|x64
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.ActiveCfg = Debug|x64
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.Build.0 = Debug|x64
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.ActiveCfg = Release|x64
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.Build.0 = Release|x64
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x64.ActiveCfg = Debug|x64
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x64.Build.0 = Debug|x64
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x64.ActiveCfg = Release|x64
+ {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x64.Build.0 = Release|x64
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x64.ActiveCfg = Debug|x64
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x64.Build.0 = Debug|x64
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|Any CPU.Build.0 = Release|Any CPU
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x64.ActiveCfg = Release|x64
+ {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x64.Build.0 = Release|x64
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Debug|x64.ActiveCfg = Debug|x64
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Debug|x64.Build.0 = Debug|x64
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Release|Any CPU.Build.0 = Release|Any CPU
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Release|x64.ActiveCfg = Release|x64
+ {08BE0726-8E3D-4624-AC9E-07816A14E906}.Release|x64.Build.0 = Release|x64
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Debug|x64.ActiveCfg = Debug|x64
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Debug|x64.Build.0 = Debug|x64
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Release|x64.ActiveCfg = Release|x64
+ {5F5E2630-513E-4A8D-BB64-0F6F574DD739}.Release|x64.Build.0 = Release|x64
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.ActiveCfg = Debug|x64
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.Build.0 = Debug|x64
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.ActiveCfg = Release|x64
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C} = {35AC6218-CBEA-4FDA-8CE1-D1EBD6FD8D4A}
+ {4059EB00-22B3-4EF9-A509-469CE8B0096D} = {35AC6218-CBEA-4FDA-8CE1-D1EBD6FD8D4A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {234CB3F9-5ADC-433F-BDBD-CB8EA59EB518}
+ EndGlobalSection
+EndGlobal
diff --git a/branding/package.json b/branding/package.json
index 7a98358fd..e859ae115 100644
--- a/branding/package.json
+++ b/branding/package.json
@@ -3,6 +3,6 @@
"name": "wpf-ui",
"version": "1.1.0",
"dependencies": {
- "@fluentui/react-icons": "2.0.190"
+ "@fluentui/react-icons": "2.0.203"
}
}
\ No newline at end of file
diff --git a/scripts/build_demo.ps1 b/etc/build_demo.ps1
similarity index 100%
rename from scripts/build_demo.ps1
rename to etc/build_demo.ps1
diff --git a/scripts/build_extension.ps1 b/etc/build_extension.ps1
similarity index 100%
rename from scripts/build_extension.ps1
rename to etc/build_extension.ps1
diff --git a/scripts/build_library.ps1 b/etc/build_library.ps1
similarity index 100%
rename from scripts/build_library.ps1
rename to etc/build_library.ps1
diff --git a/scripts/dotnet_build.ps1 b/etc/dotnet_build.ps1
similarity index 100%
rename from scripts/dotnet_build.ps1
rename to etc/dotnet_build.ps1
diff --git a/scripts/msbuild_build.ps1 b/etc/msbuild_build.ps1
similarity index 100%
rename from scripts/msbuild_build.ps1
rename to etc/msbuild_build.ps1
diff --git a/src/nuget.config b/nuget.config
similarity index 100%
rename from src/nuget.config
rename to nuget.config
diff --git a/src/Wpf.Ui.Demo.Mvvm/ViewModels/MainWindowViewModel.cs b/src/Wpf.Ui.Demo.Mvvm/ViewModels/MainWindowViewModel.cs
index 75f9e68bc..045f6d4cc 100644
--- a/src/Wpf.Ui.Demo.Mvvm/ViewModels/MainWindowViewModel.cs
+++ b/src/Wpf.Ui.Demo.Mvvm/ViewModels/MainWindowViewModel.cs
@@ -6,6 +6,7 @@
using System.Collections.ObjectModel;
using Wpf.Ui.Common;
using Wpf.Ui.Controls;
+using Wpf.Ui.Controls.IconElements;
using Wpf.Ui.Controls.Navigation;
namespace Wpf.Ui.Demo.Mvvm.ViewModels;
diff --git a/src/Wpf.Ui.Demo.Mvvm/Views/MainWindow.xaml b/src/Wpf.Ui.Demo.Mvvm/Views/MainWindow.xaml
index 38968932f..547950d64 100644
--- a/src/Wpf.Ui.Demo.Mvvm/Views/MainWindow.xaml
+++ b/src/Wpf.Ui.Demo.Mvvm/Views/MainWindow.xaml
@@ -21,6 +21,14 @@
WindowCornerPreference="Round"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
+
+
+
+
+
@@ -33,11 +41,13 @@
FooterMenuItemsSource="{Binding ViewModel.NavigationFooter, Mode=OneWay}"
MenuItemsSource="{Binding ViewModel.NavigationItems, Mode=OneWay}">
-
+
+
+
+
+
+
+
app.manifest
applicationIcon.ico
7.0
+ AnyCPU;x64
diff --git a/src/Wpf.Ui.Demo.Simple/MainWindow.xaml b/src/Wpf.Ui.Demo.Simple/MainWindow.xaml
index 5b6ab2e76..eba23dd4b 100644
--- a/src/Wpf.Ui.Demo.Simple/MainWindow.xaml
+++ b/src/Wpf.Ui.Demo.Simple/MainWindow.xaml
@@ -20,6 +20,14 @@
WindowCornerPreference="Round"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
+
+
+
+
+
@@ -28,11 +36,13 @@
-
+
+
+
+
+
+
+
app.manifest
applicationIcon.ico
7.0
+ AnyCPU;x64
diff --git a/src/Wpf.Ui.Demo.sln b/src/Wpf.Ui.Demo.sln
deleted file mode 100644
index 9b78ba314..000000000
--- a/src/Wpf.Ui.Demo.sln
+++ /dev/null
@@ -1,64 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.1.32407.343
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui", "Wpf.Ui\Wpf.Ui.csproj", "{1ADC87D1-8963-4100-845A-18477824718E}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{21DB16AA-40BB-428B-AFE8-DEF4E3F0DC49}"
- ProjectSection(SolutionItems) = preProject
- Directory.Build.props = Directory.Build.props
- Directory.Packages.props = Directory.Packages.props
- ..\LICENSE = ..\LICENSE
- ..\README.md = ..\README.md
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Library", "Library", "{BA330FCF-7C4C-4B06-A124-C33BB701B174}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Demo.Mvvm", "Wpf.Ui.Demo.Mvvm\Wpf.Ui.Demo.Mvvm.csproj", "{E886F37B-2446-4633-A835-A14F810F2519}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wpf.Ui.Demo.Simple", "Wpf.Ui.Demo.Simple\Wpf.Ui.Demo.Simple.csproj", "{BEB6F886-8E4B-432B-B08A-A24DB99AB530}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1ADC87D1-8963-4100-845A-18477824718E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x86.Build.0 = Debug|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.Build.0 = Release|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Release|x86.ActiveCfg = Release|Any CPU
- {1ADC87D1-8963-4100-845A-18477824718E}.Release|x86.Build.0 = Release|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Debug|x86.Build.0 = Debug|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Release|Any CPU.Build.0 = Release|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Release|x86.ActiveCfg = Release|Any CPU
- {E886F37B-2446-4633-A835-A14F810F2519}.Release|x86.Build.0 = Release|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Debug|x86.Build.0 = Debug|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Release|Any CPU.Build.0 = Release|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Release|x86.ActiveCfg = Release|Any CPU
- {BEB6F886-8E4B-432B-B08A-A24DB99AB530}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {1ADC87D1-8963-4100-845A-18477824718E} = {BA330FCF-7C4C-4B06-A124-C33BB701B174}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {234CB3F9-5ADC-433F-BDBD-CB8EA59EB518}
- EndGlobalSection
-EndGlobal
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml
new file mode 100644
index 000000000..ed1ed0c52
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml.cs
new file mode 100644
index 000000000..e06498e98
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/App.xaml.cs
@@ -0,0 +1,98 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using System.IO;
+using System.Reflection;
+using System.Windows;
+using System.Windows.Threading;
+using Wpf.Ui.Mvvm.Contracts;
+using Wpf.Ui.Mvvm.Services;
+using $safeprojectname$.Models;
+using $safeprojectname$.Services;
+
+namespace $safeprojectname$
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App
+ {
+ // The.NET Generic Host provides dependency injection, configuration, logging, and other services.
+ // https://docs.microsoft.com/dotnet/core/extensions/generic-host
+ // https://docs.microsoft.com/dotnet/core/extensions/dependency-injection
+ // https://docs.microsoft.com/dotnet/core/extensions/configuration
+ // https://docs.microsoft.com/dotnet/core/extensions/logging
+ private static readonly IHost _host = Host
+ .CreateDefaultBuilder()
+ .ConfigureAppConfiguration(c => { c.SetBasePath(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)); })
+ .ConfigureServices((context, services) =>
+ {
+ // App Host
+ services.AddHostedService();
+
+ // Page resolver service
+ services.AddSingleton();
+
+ // Theme manipulation
+ services.AddSingleton();
+
+ // TaskBar manipulation
+ services.AddSingleton();
+
+ // Service containing navigation, same as INavigationWindow... but without window
+ services.AddSingleton();
+
+ // Main window with navigation
+ services.AddScoped();
+ services.AddScoped();
+
+ // Views and ViewModels
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
+
+ // Configuration
+ services.Configure(context.Configuration.GetSection(nameof(AppConfig)));
+ }).Build();
+
+ ///
+ /// Gets registered service.
+ ///
+ /// Type of the service to get.
+ /// Instance of the service or .
+ public static T GetService()
+ where T : class
+ {
+ return _host.Services.GetService(typeof(T)) as T;
+ }
+
+ ///
+ /// Occurs when the application is loading.
+ ///
+ private async void OnStartup(object sender, StartupEventArgs e)
+ {
+ await _host.StartAsync();
+ }
+
+ ///
+ /// Occurs when the application is closing.
+ ///
+ private async void OnExit(object sender, ExitEventArgs e)
+ {
+ await _host.StopAsync();
+
+ _host.Dispose();
+ }
+
+ ///
+ /// Occurs when an exception is thrown by an application but not handled.
+ ///
+ private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
+ {
+ // For more info see https://docs.microsoft.com/en-us/dotnet/api/system.windows.application.dispatcherunhandledexception?view=windowsdesktop-6.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/AssemblyInfo.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/AssemblyInfo.cs
new file mode 100644
index 000000000..8b5504ecf
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/AssemblyInfo.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/src/Wpf.Ui.Extension/Wpf.Ui.Extension/wpfui.png b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Assets/applicationIcon-1024.png
similarity index 100%
rename from src/Wpf.Ui.Extension/Wpf.Ui.Extension/wpfui.png
rename to src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Assets/applicationIcon-1024.png
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Assets/applicationIcon-256.png b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Assets/applicationIcon-256.png
new file mode 100644
index 000000000..6b5cf5d5a
Binary files /dev/null and b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Assets/applicationIcon-256.png differ
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Helpers/EnumToBooleanConverter.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Helpers/EnumToBooleanConverter.cs
new file mode 100644
index 000000000..0c5c4d56b
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Helpers/EnumToBooleanConverter.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace $safeprojectname$.Helpers
+{
+ internal class EnumToBooleanConverter : IValueConverter
+ {
+ public EnumToBooleanConverter()
+ {
+ }
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (parameter is not String enumString)
+ throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
+
+ if (!Enum.IsDefined(typeof(Wpf.Ui.Appearance.ThemeType), value))
+ throw new ArgumentException("ExceptionEnumToBooleanConverterValueMustBeAnEnum");
+
+ var enumValue = Enum.Parse(typeof(Wpf.Ui.Appearance.ThemeType), enumString);
+
+ return enumValue.Equals(value);
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (parameter is not String enumString)
+ throw new ArgumentException("ExceptionEnumToBooleanConverterParameterMustBeAnEnumName");
+
+ return Enum.Parse(typeof(Wpf.Ui.Appearance.ThemeType), enumString);
+ }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/AppConfig.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/AppConfig.cs
new file mode 100644
index 000000000..de05a5c07
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/AppConfig.cs
@@ -0,0 +1,9 @@
+namespace $safeprojectname$.Models
+{
+ public class AppConfig
+ {
+ public string ConfigurationsFolder { get; set; }
+
+ public string AppPropertiesFileName { get; set; }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/DataColor.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/DataColor.cs
new file mode 100644
index 000000000..37d424944
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Models/DataColor.cs
@@ -0,0 +1,9 @@
+using System.Windows.Media;
+
+namespace $safeprojectname$.Models
+{
+ public struct DataColor
+ {
+ public Brush Color { get; set; }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/ApplicationHostService.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/ApplicationHostService.cs
new file mode 100644
index 000000000..e9ac2c81e
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/ApplicationHostService.cs
@@ -0,0 +1,60 @@
+using Microsoft.Extensions.Hosting;
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows;
+using Wpf.Ui.Mvvm.Contracts;
+
+namespace $safeprojectname$.Services
+{
+ ///
+ /// Managed host of the application.
+ ///
+ public class ApplicationHostService : IHostedService
+ {
+ private readonly IServiceProvider _serviceProvider;
+ private INavigationWindow _navigationWindow;
+
+ public ApplicationHostService(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ }
+
+ ///
+ /// Triggered when the application host is ready to start the service.
+ ///
+ /// Indicates that the start process has been aborted.
+ public async Task StartAsync(CancellationToken cancellationToken)
+ {
+ await HandleActivationAsync();
+ }
+
+ ///
+ /// Triggered when the application host is performing a graceful shutdown.
+ ///
+ /// Indicates that the shutdown process should no longer be graceful.
+ public async Task StopAsync(CancellationToken cancellationToken)
+ {
+ await Task.CompletedTask;
+ }
+
+ ///
+ /// Creates main window during activation.
+ ///
+ private async Task HandleActivationAsync()
+ {
+ await Task.CompletedTask;
+
+ if (!Application.Current.Windows.OfType().Any())
+ {
+ _navigationWindow = (_serviceProvider.GetService(typeof(INavigationWindow)) as INavigationWindow)!;
+ _navigationWindow!.ShowWindow();
+
+ _navigationWindow.Navigate(typeof(Views.Pages.DashboardPage));
+ }
+
+ await Task.CompletedTask;
+ }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/PageService.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/PageService.cs
new file mode 100644
index 000000000..0e5761d80
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/Services/PageService.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Windows;
+using Wpf.Ui.Mvvm.Contracts;
+
+namespace $safeprojectname$.Services
+{
+ ///
+ /// Service that provides pages for navigation.
+ ///
+ public class PageService : IPageService
+ {
+ ///
+ /// Service which provides the instances of pages.
+ ///
+ private readonly IServiceProvider _serviceProvider;
+
+ ///
+ /// Creates new instance and attaches the .
+ ///
+ public PageService(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ }
+
+ ///
+ public T? GetPage() where T : class
+ {
+ if (!typeof(FrameworkElement).IsAssignableFrom(typeof(T)))
+ throw new InvalidOperationException("The page should be a WPF control.");
+
+ return (T?)_serviceProvider.GetService(typeof(T));
+ }
+
+ ///
+ public FrameworkElement? GetPage(Type pageType)
+ {
+ if (!typeof(FrameworkElement).IsAssignableFrom(pageType))
+ throw new InvalidOperationException("The page should be a WPF control.");
+
+ return _serviceProvider.GetService(pageType) as FrameworkElement;
+ }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DashboardViewModel.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DashboardViewModel.cs
new file mode 100644
index 000000000..624d7a325
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DashboardViewModel.cs
@@ -0,0 +1,26 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
+using Wpf.Ui.Common.Interfaces;
+
+namespace $safeprojectname$.ViewModels
+{
+ public partial class DashboardViewModel : ObservableObject, INavigationAware
+ {
+ [ObservableProperty]
+ private int _counter = 0;
+
+ public void OnNavigatedTo()
+ {
+ }
+
+ public void OnNavigatedFrom()
+ {
+ }
+
+ [RelayCommand]
+ private void OnCounterIncrement()
+ {
+ Counter++;
+ }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DataViewModel.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DataViewModel.cs
new file mode 100644
index 000000000..6ec2854ae
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/DataViewModel.cs
@@ -0,0 +1,47 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using System;
+using System.Collections.Generic;
+using System.Windows.Media;
+using Wpf.Ui.Common.Interfaces;
+using $safeprojectname$.Models;
+
+namespace $safeprojectname$.ViewModels
+{
+ public partial class DataViewModel : ObservableObject, INavigationAware
+ {
+ private bool _isInitialized = false;
+
+ [ObservableProperty]
+ private IEnumerable _colors;
+
+ public void OnNavigatedTo()
+ {
+ if (!_isInitialized)
+ InitializeViewModel();
+ }
+
+ public void OnNavigatedFrom()
+ {
+ }
+
+ private void InitializeViewModel()
+ {
+ var random = new Random();
+ var colorCollection = new List();
+
+ for (int i = 0; i < 8192; i++)
+ colorCollection.Add(new DataColor
+ {
+ Color = new SolidColorBrush(Color.FromArgb(
+ (byte)200,
+ (byte)random.Next(0, 250),
+ (byte)random.Next(0, 250),
+ (byte)random.Next(0, 250)))
+ });
+
+ Colors = colorCollection;
+
+ _isInitialized = true;
+ }
+ }
+}
diff --git a/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/MainWindowViewModel.cs b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/MainWindowViewModel.cs
new file mode 100644
index 000000000..fe5a60fb0
--- /dev/null
+++ b/src/Wpf.Ui.Extension.Templates/Wpf.Ui.Mvvm.CompactNavigation/ViewModels/MainWindowViewModel.cs
@@ -0,0 +1,78 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using System;
+using System.Collections.ObjectModel;
+using Wpf.Ui.Common;
+using Wpf.Ui.Controls;
+using Wpf.Ui.Controls.Interfaces;
+using Wpf.Ui.Mvvm.Contracts;
+
+namespace $safeprojectname$.ViewModels
+{
+ public partial class MainWindowViewModel : ObservableObject
+ {
+ private bool _isInitialized = false;
+
+ [ObservableProperty]
+ private string _applicationTitle = String.Empty;
+
+ [ObservableProperty]
+ private ObservableCollection _navigationItems = new();
+
+ [ObservableProperty]
+ private ObservableCollection _navigationFooter = new();
+
+ [ObservableProperty]
+ private ObservableCollection
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/BasicInputPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/BasicInputPage.xaml
index 3c17cdffd..5ad5c6d8c 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/BasicInputPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/BasicInputPage.xaml
@@ -18,10 +18,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ButtonPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ButtonPage.xaml
index 7c8813f7b..4495b6332 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ButtonPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ButtonPage.xaml
@@ -23,81 +23,80 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/CheckBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/CheckBoxPage.xaml
index c6a46f135..93b6a014c 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/CheckBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/CheckBoxPage.xaml
@@ -23,82 +23,81 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
- <CheckBox Content="Standard WPF checkbox" />
-
+
+
+
+
+
+
+ <CheckBox Content="Standard WPF checkbox" />
+
-
-
+
+
+
+
+
+ <CheckBox IsThreeState="True" />
+
+
+
+
+
-
-
- <CheckBox IsThreeState="True" />
-
-
-
-
-
-
-
-
-
-
-
-
- <CheckBox IsThreeState="True" />
-
-
-
-
-
+
+
+
+
+
+
+ <CheckBox IsThreeState="True" />
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ComboBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ComboBoxPage.xaml
index 0d1fb6c48..33aef5df5 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ComboBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ComboBoxPage.xaml
@@ -24,71 +24,68 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/HyperlinkPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/HyperlinkPage.xaml
index 782fe08f0..6abef01d6 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/HyperlinkPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/HyperlinkPage.xaml
@@ -23,43 +23,42 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RadioButtonPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RadioButtonPage.xaml
index f4f452c05..1f128ebe9 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RadioButtonPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RadioButtonPage.xaml
@@ -23,79 +23,78 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ GroupName="radio_group_one"
+ IsChecked="True"
+ IsEnabled="{Binding ViewModel.IsRadioButtonEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:RadioButtonPage}, Mode=OneWay}" />
+ GroupName="radio_group_one"
+ IsEnabled="{Binding ViewModel.IsRadioButtonEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:RadioButtonPage}, Mode=OneWay}" />
+ GroupName="radio_group_one"
+ IsEnabled="{Binding ViewModel.IsRadioButtonEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:RadioButtonPage}, Mode=OneWay}" />
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RatingPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RatingPage.xaml
index 0a2ca0d66..b3d825c92 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RatingPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/RatingPage.xaml
@@ -23,89 +23,86 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/SliderPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/SliderPage.xaml
index 788bb304d..200cedc2f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/SliderPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/SliderPage.xaml
@@ -23,151 +23,148 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ThumbRatePage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ThumbRatePage.xaml
index 36a7bfccf..cff57a0d2 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ThumbRatePage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ThumbRatePage.xaml
@@ -23,42 +23,39 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleButtonPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleButtonPage.xaml
index c3257bb72..1a0593d6e 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleButtonPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleButtonPage.xaml
@@ -22,43 +22,41 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleSwitchPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleSwitchPage.xaml
index db9003333..52daf7421 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleSwitchPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/BasicInput/ToggleSwitchPage.xaml
@@ -23,43 +23,40 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/CollectionsPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/CollectionsPage.xaml
index e0ed26f89..b1dd93812 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/CollectionsPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/CollectionsPage.xaml
@@ -17,10 +17,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/DataGridPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/DataGridPage.xaml
index c2427392f..e5950c1b4 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/DataGridPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/DataGridPage.xaml
@@ -23,44 +23,41 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListBoxPage.xaml
index 798b656ab..c34aa198f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListBoxPage.xaml
@@ -23,57 +23,54 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
- Blue
- Green
- Red
- Yellow
-
-
-
- <ListBox>\n
- \t<ListBoxItem Content="Blue"/>\n
- \t<ListBoxItem Content="Green"/>\n
- </ListBox>
-
-
+
+
+
+
+
+
+
+
+ Blue
+ Green
+ Red
+ Yellow
+
+
+
+ <ListBox>\n
+ \t<ListBoxItem Content="Blue"/>\n
+ \t<ListBoxItem Content="Green"/>\n
+ </ListBox>
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListViewPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListViewPage.xaml
index 1836c85a9..f5754dc6e 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListViewPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/ListViewPage.xaml
@@ -24,128 +24,125 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ListView ItemsSource="{Binding ViewModel.MyCollection}"><>\n
- \t<ListView.ItemTemplate>\n
- \t\t<DataTemplate DataType="{x:Type models:Person}" >\n
- \t\t\t<TextBlock Margin="8,4" Text="{Binding Name}"/>\n
- \t\t</DataTemplate>\n
- \t</ListView.ItemTemplate>\n
- </ListView>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ListView ItemsSource="{Binding ViewModel.MyCollection}"><>\n
+ \t<ListView.ItemTemplate>\n
+ \t\t<DataTemplate DataType="{x:Type models:Person}" >\n
+ \t\t\t<TextBlock Margin="8,4" Text="{Binding Name}"/>\n
+ \t\t</DataTemplate>\n
+ \t</ListView.ItemTemplate>\n
+ </ListView>
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ListView ItemsSource="{Binding ViewModel.MyCollection}"><>\n
- \t<ListView.ItemTemplate>\n
- \t\t<DataTemplate DataType="{x:Type models:Person}" >\n
- \t\t\t<TextBlock Margin="0,5,0,5" Text="{Binding Name}"/>\n
- \t\t</DataTemplate>\n
- \t</ListView.ItemTemplate>\n
- </ListView>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ListView ItemsSource="{Binding ViewModel.MyCollection}"><>\n
+ \t<ListView.ItemTemplate>\n
+ \t\t<DataTemplate DataType="{x:Type models:Person}" >\n
+ \t\t\t<TextBlock Margin="0,5,0,5" Text="{Binding Name}"/>\n
+ \t\t</DataTemplate>\n
+ \t</ListView.ItemTemplate>\n
+ </ListView>
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeListPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeListPage.xaml
index 75d5c36ba..c3299d6c6 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeListPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeListPage.xaml
@@ -23,34 +23,31 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
-
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeViewPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeViewPage.xaml
index 207c34022..13d096b55 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeViewPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Collections/TreeViewPage.xaml
@@ -23,55 +23,52 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <TreeView AllowDrop="True">\n
- \t<TreeViewItem Header="Work Documents" IsExpanded="True">\n
- \t\t<TreeViewItem Header="Feature Schedule"/>\n
- \t</TreeViewItem>\n
- </TreeView>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <TreeView AllowDrop="True">\n
+ \t<TreeViewItem Header="Work Documents" IsExpanded="True">\n
+ \t\t<TreeViewItem Header="Feature Schedule"/>\n
+ \t</TreeViewItem>\n
+ </TreeView>
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DashboardPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DashboardPage.xaml
index 039f5b5c3..dc4d4c3d4 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DashboardPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DashboardPage.xaml
@@ -16,7 +16,7 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
+
@@ -46,25 +46,24 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="Transparent">
-
-
-
+
-
@@ -111,15 +110,13 @@
Grid.Column="1"
Margin="24"
VerticalAlignment="Center">
-
-
@@ -150,14 +147,13 @@
Grid.Column="1"
Margin="24"
VerticalAlignment="Center">
-
-
@@ -189,14 +185,13 @@
Grid.Column="1"
Margin="24"
VerticalAlignment="Center">
-
-
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/CalendarPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/CalendarPage.xaml
index 3f7a26c75..ecae20f51 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/CalendarPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/CalendarPage.xaml
@@ -23,35 +23,33 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
- <Calendar/>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ <Calendar/>
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DateAndTimePage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DateAndTimePage.xaml
index 22f028501..510414c02 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DateAndTimePage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DateAndTimePage.xaml
@@ -17,10 +17,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DatePickerPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DatePickerPage.xaml
index ffcdaa72b..c8bfa18f7 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DatePickerPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DateAndTime/DatePickerPage.xaml
@@ -23,35 +23,33 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
- <DatePicker/>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ <DatePicker/>
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml
new file mode 100644
index 000000000..5ca506574
--- /dev/null
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml.cs b/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml.cs
new file mode 100644
index 000000000..e8c37c5af
--- /dev/null
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DesignGuidance/TypographyPage.xaml.cs
@@ -0,0 +1,11 @@
+using System.Windows.Controls;
+
+namespace Wpf.Ui.Gallery.Views.Pages.DesignGuidance;
+
+public partial class TypographyPage : Page
+{
+ public TypographyPage()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/ContentDialog.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/ContentDialog.xaml
index dcdd71276..e05434a60 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/ContentDialog.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/ContentDialog.xaml
@@ -18,7 +18,6 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
https://github.com/lepoco/wpfui/blob/development/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/ContentDialog.xaml
@@ -36,39 +35,35 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/DialogsAndFlyoutsPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/DialogsAndFlyoutsPage.xaml
index 29f20828b..97bc9e0cd 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/DialogsAndFlyoutsPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/DialogsAndFlyoutsPage.xaml
@@ -18,10 +18,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/FlyoutPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/FlyoutPage.xaml
index 868e976e8..776bd6a73 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/FlyoutPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/FlyoutPage.xaml
@@ -23,56 +23,53 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/MessageBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/MessageBoxPage.xaml
index 2e7a0416b..aabc445bc 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/MessageBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/MessageBoxPage.xaml
@@ -23,50 +23,49 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/SnackbarPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/SnackbarPage.xaml
index c876d9349..027c82e03 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/SnackbarPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/DialogsAndFlyouts/SnackbarPage.xaml
@@ -23,83 +23,83 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ <ui:Snackbar Title="Title" Appearance="Secondary" />
+
+
-
-
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Icons/FontIconPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Icons/FontIconPage.xaml
index 659797688..b06bca274 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Icons/FontIconPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Icons/FontIconPage.xaml
@@ -23,44 +23,41 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Icons/IconsPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Icons/IconsPage.xaml
index f323cb6b8..14d5f192b 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Icons/IconsPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Icons/IconsPage.xaml
@@ -16,9 +16,10 @@
ui:Design.Background="{DynamicResource ApplicationBackgroundBrush}"
ui:Design.Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
+ ScrollViewer.CanContentScroll="False"
mc:Ignorable="d">
-
+
@@ -88,19 +89,18 @@
VirtualizingPanel.CacheLengthUnit="Pixel">
-
+ ToolTip="{Binding Name, Mode=OneTime}">
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Icons/SymbolIconPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Icons/SymbolIconPage.xaml
index b89d034a4..c1d22e02f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Icons/SymbolIconPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Icons/SymbolIconPage.xaml
@@ -23,45 +23,42 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Media/CanvasPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Media/CanvasPage.xaml
index 1b3ada983..7119fd89f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Media/CanvasPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Media/CanvasPage.xaml
@@ -24,49 +24,46 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- <Viewbox Width="200" Height="200" >\n
- \t<Canvas Width="47" Height="123">\n
- \t\t<Path Data="M0,19H18V84h29v15H0V19Z" Fill="White" />\n
- \t\t<Path Data="M46,80H29V15H0V0H46V80Z" Fill="White" />\n
- \t</Canvas>\n
- </Viewbox>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ <Viewbox Width="200" Height="200" >\n
+ \t<Canvas Width="47" Height="123">\n
+ \t\t<Path Data="M0,19H18V84h29v15H0V19Z" Fill="White" />\n
+ \t\t<Path Data="M46,80H29V15H0V0H46V80Z" Fill="White" />\n
+ \t</Canvas>\n
+ </Viewbox>
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Media/ImagePage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Media/ImagePage.xaml
index 887db0bfb..fb1623592 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Media/ImagePage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Media/ImagePage.xaml
@@ -23,52 +23,49 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Media/MediaPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Media/MediaPage.xaml
index 03bba5bc3..65f1261ee 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Media/MediaPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Media/MediaPage.xaml
@@ -18,10 +18,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Media/WebBrowserPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Media/WebBrowserPage.xaml
index a5654080f..f4cbe42cb 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Media/WebBrowserPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Media/WebBrowserPage.xaml
@@ -23,40 +23,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Media/WebViewPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Media/WebViewPage.xaml
index b11743e1b..b9102fece 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Media/WebViewPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Media/WebViewPage.xaml
@@ -24,38 +24,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/BreadcrumbBarPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/BreadcrumbBarPage.xaml
index 375354232..07bdb4590 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/BreadcrumbBarPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/BreadcrumbBarPage.xaml
@@ -50,68 +50,63 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ui:BreadcrumbBar ItemsSource="{Binding ViewModel.Folders, Mode=OneWay}" >\n
- \t<ui:BreadcrumbBar.ItemTemplate>\n
- \t\t<ui:DataTemplate DataType="{x:Type models:Folder}" >\n
- \t\t\t<TextBlock Text="{Binding Name, Mode=OneTime}" />\n
- \t\t</ui:DataTemplate>\n
- \t</ui:BreadcrumbBar.ItemTemplate>\n
- </ui:BreadcrumbBar>
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ui:BreadcrumbBar ItemsSource="{Binding ViewModel.Folders, Mode=OneWay}" >\n
+ \t<ui:BreadcrumbBar.ItemTemplate>\n
+ \t\t<ui:DataTemplate DataType="{x:Type models:Folder}" >\n
+ \t\t\t<TextBlock Text="{Binding Name, Mode=OneTime}" />\n
+ \t\t</ui:DataTemplate>\n
+ \t</ui:BreadcrumbBar.ItemTemplate>\n
+ </ui:BreadcrumbBar>
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/MenuPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/MenuPage.xaml
index b74e4089c..59d5b8085 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/MenuPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/MenuPage.xaml
@@ -21,68 +21,66 @@
https://github.com/lepoco/wpfui/blob/development/src/Wpf.Ui/Styles/Controls/Menu.xaml
https://github.com/dotnet/wpf/blob/main/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Menu.cs
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
- <Menu>\n
- \t<MenuItem Header="File" />\n
- \t<MenuItem Header="Edit" />\n
- \t<ui:MenuItem Header="Icon" SymbolIcon="Fluent24" />\n
- \t<ui:MenuItem SymbolIcon="Fluent24" />\n
- </Menu>
-
-
-
-
-
-
+
+
+
+
+
+
+ <Menu>\n
+ \t<MenuItem Header="File" />\n
+ \t<MenuItem Header="Edit" />\n
+ \t<ui:MenuItem Header="Icon" SymbolIcon="Fluent24" />\n
+ \t<ui:MenuItem SymbolIcon="Fluent24" />\n
+ </Menu>
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationPage.xaml
index a21287f00..b6882d08f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationPage.xaml
@@ -18,10 +18,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationViewPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationViewPage.xaml
index 9c150498a..368f13d2e 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationViewPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/NavigationViewPage.xaml
@@ -24,373 +24,365 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ui:NavigationView IsBackButtonVisible="Auto" >\n
- \t<ui:NavigationView.MenuItems>\n
- \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
- \t</ui:NavigationView.MenuItems>\n
- </ui:NavigationView>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ui:NavigationView IsBackButtonVisible="Auto" >\n
+ \t<ui:NavigationView.MenuItems>\n
+ \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
+ \t</ui:NavigationView.MenuItems>\n
+ </ui:NavigationView>
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ui:NavigationView PaneDisplayMode="LeftFluent" >\n
- \t<ui:NavigationView.MenuItems>\n
- \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
- \t</ui:NavigationView.MenuItems>\n
- </ui:NavigationView>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ui:NavigationView PaneDisplayMode="LeftFluent" >\n
+ \t<ui:NavigationView.MenuItems>\n
+ \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
+ \t</ui:NavigationView.MenuItems>\n
+ </ui:NavigationView>
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ui:NavigationView PaneDisplayMode="Top" >\n
- \t<ui:NavigationView.MenuItems>\n
- \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
- \t</ui:NavigationView.MenuItems>\n
- </ui:NavigationView>
-
-
-
-
+ PlaceholderText="Search" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ui:NavigationView PaneDisplayMode="Top" >\n
+ \t<ui:NavigationView.MenuItems>\n
+ \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
+ \t</ui:NavigationView.MenuItems>\n
+ </ui:NavigationView>
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <ui:NavigationView PaneDisplayMode="Bottom" >\n
- \t<ui:NavigationView.MenuItems>\n
- \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
- \t</ui:NavigationView.MenuItems>\n
- </ui:NavigationView>
-
-
-
+ PlaceholderText="Search" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <ui:NavigationView PaneDisplayMode="Bottom" >\n
+ \t<ui:NavigationView.MenuItems>\n
+ \t\t<ui:NavigationViewItem Content="Home" Icon="Home24" />\n
+ \t</ui:NavigationView.MenuItems>\n
+ </ui:NavigationView>
+
+
+
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/TabControlPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/TabControlPage.xaml
index 84237e828..c1331f148 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Navigation/TabControlPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Navigation/TabControlPage.xaml
@@ -23,52 +23,50 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/SettingsPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/SettingsPage.xaml
index fa5215c66..eeb12d7cf 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/SettingsPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/SettingsPage.xaml
@@ -20,7 +20,7 @@
-
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressBarPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressBarPage.xaml
index 84b01e966..7dbd7c147 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressBarPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressBarPage.xaml
@@ -21,30 +21,27 @@
https://github.com/lepoco/wpfui/blob/development/src/Wpf.Ui/Styles/Controls/ProgressBar.xaml
https://github.com/dotnet/wpf/blob/main/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/ProgressBar.cs
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressRingPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressRingPage.xaml
index e9311254f..5e3c70a42 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressRingPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ProgressRingPage.xaml
@@ -23,29 +23,27 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/StatusAndInfoPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/StatusAndInfoPage.xaml
index ed5aaa5ed..e69eca355 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/StatusAndInfoPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/StatusAndInfoPage.xaml
@@ -18,10 +18,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ToolTipPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ToolTipPage.xaml
index c70530aea..9abc87e1c 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ToolTipPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/StatusAndInfo/ToolTipPage.xaml
@@ -22,33 +22,31 @@
https://github.com/dotnet/wpf/blob/main/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/ToolTip.cs
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/AutoSuggestBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/AutoSuggestBoxPage.xaml
index 0ba712568..bfc06acb1 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/AutoSuggestBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/AutoSuggestBoxPage.xaml
@@ -24,40 +24,35 @@
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/LabelPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/LabelPage.xaml
index 5e2cee182..5e350fcac 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/LabelPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/LabelPage.xaml
@@ -23,51 +23,48 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/NumberBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/NumberBoxPage.xaml
index 5906b9b83..40988c923 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/NumberBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/NumberBoxPage.xaml
@@ -23,69 +23,66 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/PasswordBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/PasswordBoxPage.xaml
index 6ed25a420..9aefe798f 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/PasswordBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/PasswordBoxPage.xaml
@@ -24,47 +24,44 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/RichTextBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/RichTextBoxPage.xaml
index 4314a37f2..67a7434f2 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/RichTextBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/RichTextBoxPage.xaml
@@ -23,29 +23,26 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBlockPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBlockPage.xaml
index 78954f03a..7458c5441 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBlockPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBlockPage.xaml
@@ -23,72 +23,73 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
- Text in a TextBlock doesn't have to be a simple string.
-
-
-
- Text can be bold, italic, or underlined.
-
-
-
- <TextBlock>\n
- \t<Run FontFamily="Times New Roman" Foreground="DarkGray">\n
- \t\t\'Text in a TextBlock doesnt have to be a simple string.'\n
- \t</Run>\n
- \t<LineBreak />\n
- </TextBlock>
-
-
-
-
-
-
+
+
+
+
+ Text in a TextBlock doesn't have to be a simple string.
+
+
+
+ Text can bebold
+ ,italic
+ , orunderlined
+ .
+
+
+
+ <TextBlock>\n
+ \t<Run FontFamily="Times New Roman" Foreground="DarkGray">\n
+ \t\t\'Text in a TextBlock doesnt have to be a simple string.'\n
+ \t</Run>\n
+ \t<LineBreak />\n
+ </TextBlock>
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBoxPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBoxPage.xaml
index abcc58ddb..cae15e527 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBoxPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextBoxPage.xaml
@@ -23,43 +23,41 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextPage.xaml
index bc1fc41d5..a50631789 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Text/TextPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Text/TextPage.xaml
@@ -16,10 +16,8 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
-
-
+
diff --git a/src/Wpf.Ui.Gallery/Views/Pages/Windows/WindowsPage.xaml b/src/Wpf.Ui.Gallery/Views/Pages/Windows/WindowsPage.xaml
index 425a5985c..848730277 100644
--- a/src/Wpf.Ui.Gallery/Views/Pages/Windows/WindowsPage.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Pages/Windows/WindowsPage.xaml
@@ -17,7 +17,7 @@
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
-
+
@@ -30,15 +30,13 @@
Icon="{Binding Icon, Mode=OneTime}"
IsChevronVisible="True">
-
-
diff --git a/src/Wpf.Ui.Gallery/Views/Windows/EditorWindow.xaml b/src/Wpf.Ui.Gallery/Views/Windows/EditorWindow.xaml
index ae6726a18..4fc53bd9b 100644
--- a/src/Wpf.Ui.Gallery/Views/Windows/EditorWindow.xaml
+++ b/src/Wpf.Ui.Gallery/Views/Windows/EditorWindow.xaml
@@ -228,10 +228,10 @@
-
+ Timeout="5000" />-->
-
-
1
2
10,8,10,7
@@ -54,4 +50,4 @@
32
-
\ No newline at end of file
+
diff --git a/src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml b/src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml
index 2f769442b..d5b40d106 100644
--- a/src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml
+++ b/src/Wpf.Ui/Styles/Controls/BreadcrumbBar.xaml
@@ -9,7 +9,6 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:breadcrumbControl="clr-namespace:Wpf.Ui.Controls.BreadcrumbControl"
- xmlns:controls="clr-namespace:Wpf.Ui.Controls"
xmlns:iconElements="clr-namespace:Wpf.Ui.Controls.IconElements"
xmlns:iconSources="clr-namespace:Wpf.Ui.Controls.IconSources">
diff --git a/src/Wpf.Ui/Styles/Controls/Button.xaml b/src/Wpf.Ui/Styles/Controls/Button.xaml
index c80af79c6..5c4cf789c 100644
--- a/src/Wpf.Ui/Styles/Controls/Button.xaml
+++ b/src/Wpf.Ui/Styles/Controls/Button.xaml
@@ -205,6 +205,7 @@
VerticalAlignment="Center"
Content="{TemplateBinding Icon}"
Focusable="False"
+ TextElement.FontSize="{Binding Path=FontSize,RelativeSource={RelativeSource TemplatedParent}}"
TextElement.Foreground="{TemplateBinding Foreground}" />
16.0
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
diff --git a/src/Wpf.Ui/Styles/Controls/CheckBox.xaml b/src/Wpf.Ui/Styles/Controls/CheckBox.xaml
index c9986ab26..9b9979137 100644
--- a/src/Wpf.Ui/Styles/Controls/CheckBox.xaml
+++ b/src/Wpf.Ui/Styles/Controls/CheckBox.xaml
@@ -109,9 +109,11 @@
+
+
diff --git a/src/Wpf.Ui/Styles/Controls/CodeBlock.xaml b/src/Wpf.Ui/Styles/Controls/CodeBlock.xaml
index b11b2d971..a3f3f1dbe 100644
--- a/src/Wpf.Ui/Styles/Controls/CodeBlock.xaml
+++ b/src/Wpf.Ui/Styles/Controls/CodeBlock.xaml
@@ -42,10 +42,6 @@
-
-
-
-
-
-
-
-
-
+
+
-
@@ -111,6 +117,7 @@
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
Focusable="False"
+ CornerRadius="{DynamicResource DialogFooterCornerRadius}"
Visibility="{TemplateBinding IsFooterVisible,
Converter={StaticResource BoolToVisibilityConverter}}">
diff --git a/src/Wpf.Ui/Styles/Controls/DataGrid.xaml b/src/Wpf.Ui/Styles/Controls/DataGrid.xaml
index 663c18c89..ecbba72f0 100644
--- a/src/Wpf.Ui/Styles/Controls/DataGrid.xaml
+++ b/src/Wpf.Ui/Styles/Controls/DataGrid.xaml
@@ -556,13 +556,14 @@
-
-
-
diff --git a/src/Wpf.Ui/Styles/Controls/NavigationView.xaml b/src/Wpf.Ui/Styles/Controls/NavigationView.xaml
index 82dcbdefe..4bff024a7 100644
--- a/src/Wpf.Ui/Styles/Controls/NavigationView.xaml
+++ b/src/Wpf.Ui/Styles/Controls/NavigationView.xaml
@@ -573,7 +573,7 @@
@@ -879,7 +879,7 @@
x:Name="ElementContentPresenter"
HorizontalAlignment="Center"
Content="{TemplateBinding Content}"
- TextElement.FontSize="10"
+ TextElement.FontSize="{TemplateBinding FontSize}"
TextElement.Foreground="{TemplateBinding Foreground}" />
@@ -1098,7 +1098,7 @@
diff --git a/src/Wpf.Ui/Styles/Controls/NavigationViewBreadcrumbItem.xaml b/src/Wpf.Ui/Styles/Controls/NavigationViewBreadcrumbItem.xaml
index f483140d6..5818460f0 100644
--- a/src/Wpf.Ui/Styles/Controls/NavigationViewBreadcrumbItem.xaml
+++ b/src/Wpf.Ui/Styles/Controls/NavigationViewBreadcrumbItem.xaml
@@ -8,10 +8,11 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/Wpf.Ui/Styles/Controls/NavigationViewContentPresenter.xaml b/src/Wpf.Ui/Styles/Controls/NavigationViewContentPresenter.xaml
index accaef669..2e1021e11 100644
--- a/src/Wpf.Ui/Styles/Controls/NavigationViewContentPresenter.xaml
+++ b/src/Wpf.Ui/Styles/Controls/NavigationViewContentPresenter.xaml
@@ -11,20 +11,36 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui/Styles/Controls/RichTextBox.xaml b/src/Wpf.Ui/Styles/Controls/RichTextBox.xaml
index 72c5fa7ca..8e0a9843e 100644
--- a/src/Wpf.Ui/Styles/Controls/RichTextBox.xaml
+++ b/src/Wpf.Ui/Styles/Controls/RichTextBox.xaml
@@ -5,9 +5,12 @@
All Rights Reserved.
-->
-
+
-
+
+
+
+
+
+
diff --git a/src/Wpf.Ui/Styles/Controls/Snackbar.xaml b/src/Wpf.Ui/Styles/Controls/Snackbar.xaml
index fdf8805d4..58f383f16 100644
--- a/src/Wpf.Ui/Styles/Controls/Snackbar.xaml
+++ b/src/Wpf.Ui/Styles/Controls/Snackbar.xaml
@@ -1,4 +1,4 @@
-
-
+
+
+
+
+
+
-
+
@@ -179,7 +197,7 @@
-
+
@@ -196,7 +214,7 @@
-
+
@@ -213,7 +231,7 @@
-
+
@@ -230,7 +248,7 @@
-
+
@@ -247,7 +265,7 @@
-
+
@@ -264,7 +282,7 @@
-
+
@@ -281,7 +299,7 @@
-
+
diff --git a/src/Wpf.Ui/Styles/Controls/TextBox.xaml b/src/Wpf.Ui/Styles/Controls/TextBox.xaml
index 56b4ed0cc..73e1911a3 100644
--- a/src/Wpf.Ui/Styles/Controls/TextBox.xaml
+++ b/src/Wpf.Ui/Styles/Controls/TextBox.xaml
@@ -17,12 +17,10 @@
1,1,1,0
0,0,0,1
- 10,8,0,0
- 0,8,10,0
- 0,5,4,0
+ 10,0,0,0
+ 0,0,10,0
+ 0,0,4,0
0,0,0,0
- 24
- 14
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Wpf.Ui/Styles/Wpf.Ui.xaml b/src/Wpf.Ui/Styles/Wpf.Ui.xaml
index 26cdf1904..58ee12664 100644
--- a/src/Wpf.Ui/Styles/Wpf.Ui.xaml
+++ b/src/Wpf.Ui/Styles/Wpf.Ui.xaml
@@ -12,6 +12,7 @@
+
diff --git a/src/Wpf.Ui/Syntax/Highlighter.cs b/src/Wpf.Ui/Syntax/Highlighter.cs
index 7ac1e4463..ba53f6c8b 100644
--- a/src/Wpf.Ui/Syntax/Highlighter.cs
+++ b/src/Wpf.Ui/Syntax/Highlighter.cs
@@ -42,17 +42,11 @@ internal static class Highlighter
private const string AttributePattern = /* language=regex */ "(\\s*)([a-zA-Z\\d\\-:]+)=(\" | ')(.*?)\\3";
- public static TextBlock Format(object code)
+ public static Paragraph FormatAsParagraph(string code, SyntaxLanguage language = SyntaxLanguage.Autodetect)
{
- return Format(code as string ?? String.Empty);
- }
-
- public static TextBlock Format(string code, SyntaxLanguage language = SyntaxLanguage.Autodetect)
- {
- TextBlock returnText = new TextBlock();
+ var paragraph = new Paragraph();
Regex rgx = new(GetPattern(language, code));
- Group codeMatched;
bool lightTheme = IsLightTheme();
foreach (Match match in rgx.Matches(code))
@@ -64,7 +58,7 @@ public static TextBlock Format(string code, SyntaxLanguage language = SyntaxLang
continue;
// Cast to group
- codeMatched = (Group)group;
+ Group codeMatched = (Group)group;
// Remove empty groups
if (String.IsNullOrEmpty(codeMatched.Value))
@@ -72,15 +66,15 @@ public static TextBlock Format(string code, SyntaxLanguage language = SyntaxLang
if (codeMatched.Value.Contains("\t"))
{
- returnText.Inlines.Add(Line(" ", Brushes.Transparent));
+ paragraph.Inlines.Add(Line(" ", Brushes.Transparent));
}
else if (codeMatched.Value.Contains("/*") || codeMatched.Value.Contains("//"))
{
- returnText.Inlines.Add(Line(codeMatched.Value, Brushes.Orange));
+ paragraph.Inlines.Add(Line(codeMatched.Value, Brushes.Orange));
}
else if (codeMatched.Value.Contains("<") || codeMatched.Value.Contains(">"))
{
- returnText.Inlines.Add(Line(codeMatched.Value,
+ paragraph.Inlines.Add(Line(codeMatched.Value,
lightTheme ? Brushes.DarkCyan : Brushes.CornflowerBlue));
}
else if (codeMatched.Value.Contains("\""))
@@ -92,18 +86,18 @@ public static TextBlock Format(string code, SyntaxLanguage language = SyntaxLang
{
for (int i = 0; i < attributeArray.Length; i += 2)
{
- returnText.Inlines.Add(Line(attributeArray[i],
+ paragraph.Inlines.Add(Line(attributeArray[i],
lightTheme ? Brushes.DarkSlateGray : Brushes.WhiteSmoke));
- returnText.Inlines.Add(Line("\"",
+ paragraph.Inlines.Add(Line("\"",
lightTheme ? Brushes.DarkCyan : Brushes.CornflowerBlue));
- returnText.Inlines.Add(Line(attributeArray[i + 1], Brushes.Coral));
- returnText.Inlines.Add(Line("\"",
+ paragraph.Inlines.Add(Line(attributeArray[i + 1], Brushes.Coral));
+ paragraph.Inlines.Add(Line("\"",
lightTheme ? Brushes.DarkCyan : Brushes.CornflowerBlue));
}
}
else
{
- returnText.Inlines.Add(Line(codeMatched.Value,
+ paragraph.Inlines.Add(Line(codeMatched.Value,
lightTheme ? Brushes.DarkSlateGray : Brushes.WhiteSmoke));
}
}
@@ -116,30 +110,30 @@ public static TextBlock Format(string code, SyntaxLanguage language = SyntaxLang
{
for (int i = 0; i < attributeArray.Length; i += 2)
{
- returnText.Inlines.Add(Line(attributeArray[i],
+ paragraph.Inlines.Add(Line(attributeArray[i],
lightTheme ? Brushes.DarkSlateGray : Brushes.WhiteSmoke));
- returnText.Inlines.Add(
+ paragraph.Inlines.Add(
Line("'", lightTheme ? Brushes.DarkCyan : Brushes.CornflowerBlue));
- returnText.Inlines.Add(Line(attributeArray[i + 1], Brushes.Coral));
- returnText.Inlines.Add(
+ paragraph.Inlines.Add(Line(attributeArray[i + 1], Brushes.Coral));
+ paragraph.Inlines.Add(
Line("'", lightTheme ? Brushes.DarkCyan : Brushes.CornflowerBlue));
}
}
else
{
- returnText.Inlines.Add(Line(codeMatched.Value,
+ paragraph.Inlines.Add(Line(codeMatched.Value,
lightTheme ? Brushes.DarkSlateGray : Brushes.WhiteSmoke));
}
}
else
{
- returnText.Inlines.Add(Line(codeMatched.Value,
+ paragraph.Inlines.Add(Line(codeMatched.Value,
lightTheme ? Brushes.CornflowerBlue : Brushes.Aqua));
}
}
}
- return returnText;
+ return paragraph;
}
public static string Clean(string code)
diff --git a/src/Wpf.Ui/Wpf.Ui.csproj b/src/Wpf.Ui/Wpf.Ui.csproj
index 1008ec067..7ee31a0e4 100644
--- a/src/Wpf.Ui/Wpf.Ui.csproj
+++ b/src/Wpf.Ui/Wpf.Ui.csproj
@@ -15,7 +15,6 @@
true
true
true
- 11
@@ -112,7 +111,6 @@
-
diff --git a/tests/Wpf.Ui.Gallery.UnitTests/UnitTest1.cs b/tests/Wpf.Ui.Gallery.UnitTests/UnitTest1.cs
new file mode 100644
index 000000000..57e2e1ad2
--- /dev/null
+++ b/tests/Wpf.Ui.Gallery.UnitTests/UnitTest1.cs
@@ -0,0 +1,11 @@
+namespace Wpf.Ui.Gallery.UnitTests
+{
+ public class UnitTest1
+ {
+ [Fact]
+ public void Test1()
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/Wpf.Ui.Gallery.UnitTests/Usings.cs b/tests/Wpf.Ui.Gallery.UnitTests/Usings.cs
new file mode 100644
index 000000000..8c927eb74
--- /dev/null
+++ b/tests/Wpf.Ui.Gallery.UnitTests/Usings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file
diff --git a/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj b/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj
new file mode 100644
index 000000000..f8be20445
--- /dev/null
+++ b/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj
@@ -0,0 +1,31 @@
+
+
+
+ net7.0-windows10.0.22621.0
+ enable
+ enable
+
+ false
+
+ AnyCPU;x64
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
diff --git a/tests/Wpf.Ui.UnitTests/SymbolExtensionsTests.cs b/tests/Wpf.Ui.UnitTests/SymbolExtensionsTests.cs
new file mode 100644
index 000000000..eeb01ca90
--- /dev/null
+++ b/tests/Wpf.Ui.UnitTests/SymbolExtensionsTests.cs
@@ -0,0 +1,46 @@
+using Wpf.Ui.Extensions;
+
+namespace Wpf.Ui.UnitTests;
+
+public class SymbolExtensionsTests
+{
+ [Fact]
+ public void GivenAllRegularSymbols_Swap_ReturnsValidFilledSymbol()
+ {
+ foreach (Wpf.Ui.Common.SymbolRegular regularSymbol in Enum.GetValues(typeof(Wpf.Ui.Common.SymbolRegular)))
+ {
+ _ = regularSymbol.Swap();
+ }
+ }
+
+ [Fact]
+ public void GivenAllFilledSymbols_Swap_ReturnsValidRegularSymbol()
+ {
+ foreach (Wpf.Ui.Common.SymbolFilled filledSymbol in Enum.GetValues(typeof(Wpf.Ui.Common.SymbolFilled)))
+ {
+ _ = filledSymbol.Swap();
+ }
+ }
+
+ [Fact]
+ public void GivenAllRegularSymbols_GetString_ReturnsValidString()
+ {
+ foreach (Wpf.Ui.Common.SymbolRegular regularSymbol in Enum.GetValues(typeof(Wpf.Ui.Common.SymbolRegular)))
+ {
+ var receivedString = regularSymbol.GetString();
+
+ Assert.NotEqual(String.Empty, receivedString);
+ }
+ }
+
+ [Fact]
+ public void GivenAllFilledSymbols_GetString_ReturnsValidString()
+ {
+ foreach (Wpf.Ui.Common.SymbolFilled filledSymbol in Enum.GetValues(typeof(Wpf.Ui.Common.SymbolFilled)))
+ {
+ var receivedString = filledSymbol.GetString();
+
+ Assert.NotEqual(String.Empty, receivedString);
+ }
+ }
+}
diff --git a/tests/Wpf.Ui.UnitTests/Usings.cs b/tests/Wpf.Ui.UnitTests/Usings.cs
new file mode 100644
index 000000000..8c927eb74
--- /dev/null
+++ b/tests/Wpf.Ui.UnitTests/Usings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file
diff --git a/tests/Wpf.Ui.UnitTests/Wpf.Ui.UnitTests.csproj b/tests/Wpf.Ui.UnitTests/Wpf.Ui.UnitTests.csproj
new file mode 100644
index 000000000..f93ec6139
--- /dev/null
+++ b/tests/Wpf.Ui.UnitTests/Wpf.Ui.UnitTests.csproj
@@ -0,0 +1,31 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+ false
+
+ AnyCPU;x64
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+