Skip to content
Merged

Meta #169

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 2 additions & 7 deletions .github/ISSUE_TEMPLATE/1-bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,8 @@ body:
attributes:
label: NuGet package version
options:
- "DevWinUI 9.5.0"
- "DevWinUI 9.4.2"
- "DevWinUI 9.3.0"
- "DevWinUI 9.2.0"
- "DevWinUI 9.1.0"
- "DevWinUI 9.0.0"
- "DevWinUI 8.9.2"
- "DevWinUI 10.0.0"
- "DevWinUI 9.9.4"
- type: dropdown
attributes:
label: IDE
Expand Down
33 changes: 12 additions & 21 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ To get started quickly, watch these YouTube video tutorials:
> [!TIP]
> Please confirm that your development environment meets the requirements before compiling.

### 1. 🖥️ Visual Studio 2022
### 1. 🖥️ Visual Studio 2026

Ensure that your installation includes the appropriate workloads:

Expand All @@ -36,16 +36,7 @@ Ensure that you have following installed:
- .Net **10.x**
- Windows 10 SDK (10.0.19041)

### 3. 📂 Solution Format (SLNX)

This project uses the new **`.slnx`** solution format.

> ⚠️ This feature is currently in preview — enable it in Visual Studio:
> **Tools → Options → Preview Features → Use the new solution format (`.slnx`)**

![DevWinUI](https://raw.githubusercontent.com/Ghost1372/DevWinUI-Resources/refs/heads/main/DevWinUI-Docs/SLNX.png)

### 4. Installed the **XAML Styler** extension (Optional for Building, Required for Contribute):
### 3. Installed the **XAML Styler** extension (Optional for Building, Required for Contribute):
[XAML Styler for Visual Studio](https://marketplace.visualstudio.com/items?itemName=TeamXavalon.XAMLStyler2022)

Make sure your environment matches these requirements to avoid issues during compilation.
Expand All @@ -57,10 +48,9 @@ Make sure your environment matches these requirements to avoid issues during com
```bash
DevWinUI/
dev/
DevWinUI/ # Core (non-XAML) logic
DevWinUI.Controls/ # Custom controls and styles
Themes/ # Styles, templates, and resources

DevWinUI/ # Full Library (Custom controls and Styles and Base Library)
Themes/ # Styles, templates, and resources
DevWinUI.Base/ # Core Library
DevWinUI.ContextMenu/ # Cross-platform context menu logic
DevWinUI.Gallery/ # Demo app for controls
VSIX/ # Source code for Visual Studio item templates
Expand Down Expand Up @@ -89,17 +79,18 @@ To fix certain Visual Studio issues when switching between `Debug` and `Release`

## 🚀 Debug and Release Configuration

- **Debug** builds target only `.NET 9` for faster development.
- **Release** builds target both `.NET 8` and `.NET 9`, and will automatically generate a NuGet package in `Output/`.
- **Debug** builds target only `.NET 10` for faster development.
- **Release** builds target both `.NET 8`, `.Net 9` and `.NET 10`, and will automatically generate a NuGet package in `Output/`.

---

## 🧱 Project Details

### 📁 DevWinUI (Core Library)
### 📁 DevWinUI.Base (Core Library)

Contains:
- Attached properties
- Common
- Helpers
- Native methods
- Services
Expand All @@ -111,7 +102,7 @@ Contains:

---

### 📁 DevWinUI.Controls (Control Library)
### 📁 DevWinUI (Controls Library)

Contains all XAML-related functionality:
- Custom controls
Expand Down Expand Up @@ -243,13 +234,13 @@ Versions are controlled centrally in `Directory.Build.props` with properties lik

<!-- Minor Version -->
<DevWinUI_MinorVersion>4</DevWinUI_MinorVersion>
<DevWinUI_Controls_MinorVersion>4</DevWinUI_Controls_MinorVersion>
<DevWinUI_Base_MinorVersion>4</DevWinUI_Base_MinorVersion>
<DevWinUI_ContextMenu_MinorVersion>3</DevWinUI_ContextMenu_MinorVersion>
<DevWinUI_Gallery_MinorVersion>4</DevWinUI_Gallery_MinorVersion>

<!-- Patch Version -->
<DevWinUI_PatchVersion>1</DevWinUI_PatchVersion>
<DevWinUI_Controls_PatchVersion>1</DevWinUI_Controls_PatchVersion>
<DevWinUI_Base_PatchVersion>1</DevWinUI_Base_PatchVersion>
<DevWinUI_ContextMenu_PatchVersion>0</DevWinUI_ContextMenu_PatchVersion>
<DevWinUI_Gallery_PatchVersion>0</DevWinUI_Gallery_PatchVersion>

Expand Down
6 changes: 3 additions & 3 deletions DevWinUI.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@
<Project Path="VSIX/DevWinUI_Template/WinUIApp-NavigationView/WinUIApp-NavigationView.csproj" Id="4c1692ff-c0b8-49fb-948d-090160e0e63a" />
<Project Path="VSIX/DevWinUI_Template/WinUIApp/WinUIApp.csproj" Id="d9c038b7-6a62-4945-a030-4ac7597f53ca" />
</Folder>
<Project Path="dev/DevWinUI/DevWinUI.csproj" Id="3b3c761a-d832-4514-81c5-9d1b3f4997b9" />
<Project Path="dev/DevWinUI.Controls/DevWinUI.Controls.csproj" Id="19a8b4a4-dcde-4a2f-9874-6a0315609ee8" />
<Project Path="dev/DevWinUI.ContextMenu/DevWinUI.ContextMenu.csproj" Id="a95cc543-1958-4754-a79a-1f8bd1ca2dac" />
<Project Path="dev/DevWinUI.SourceGenerator/DevWinUI.SourceGenerator.csproj" Id="5d333619-af6e-4d59-80e3-7683db025f9c" />
<Project Path="dev/DevWinUI/DevWinUI.csproj" Id="19a8b4a4-dcde-4a2f-9874-6a0315609ee8" />
<Project Path="dev/DevWinUI.Gallery/DevWinUI.Gallery.csproj">
<Platform Solution="*|ARM64" Project="ARM64" />
<Platform Solution="*|x64" Project="x64" />
<Platform Solution="*|x86" Project="x86" />
<Deploy />
</Project>
<Project Path="dev/DevWinUI.SourceGenerator/DevWinUI.SourceGenerator.csproj" Id="5d333619-af6e-4d59-80e3-7683db025f9c" />
<Project Path="dev/DevWinUI.Base/DevWinUI.Base.csproj" Id="3b3c761a-d832-4514-81c5-9d1b3f4997b9" />
</Solution>
36 changes: 18 additions & 18 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,34 @@
<SourceGeneratorLibName>DevWinUI.SourceGenerator</SourceGeneratorLibName>

<!-- Major Version -->
<LibraryMajorVersion>9</LibraryMajorVersion>
<LibraryMajorVersion>10</LibraryMajorVersion>

<!-- Minor Version -->
<DevWinUI_MinorVersion>9</DevWinUI_MinorVersion>
<DevWinUI_Controls_MinorVersion>9</DevWinUI_Controls_MinorVersion>
<DevWinUI_ContextMenu_MinorVersion>9</DevWinUI_ContextMenu_MinorVersion>
<DevWinUI_SourceGenerator_MinorVersion>9</DevWinUI_SourceGenerator_MinorVersion>
<DevWinUI_Gallery_MinorVersion>9</DevWinUI_Gallery_MinorVersion>
<DevWinUI_MinorVersion>0</DevWinUI_MinorVersion>
<DevWinUI_Base_MinorVersion>0</DevWinUI_Base_MinorVersion>
<DevWinUI_ContextMenu_MinorVersion>0</DevWinUI_ContextMenu_MinorVersion>
<DevWinUI_SourceGenerator_MinorVersion>0</DevWinUI_SourceGenerator_MinorVersion>
<DevWinUI_Gallery_MinorVersion>0</DevWinUI_Gallery_MinorVersion>

<!-- Patch Version -->
<DevWinUI_PatchVersion>4</DevWinUI_PatchVersion>
<DevWinUI_Controls_PatchVersion>4</DevWinUI_Controls_PatchVersion>
<DevWinUI_PatchVersion>0</DevWinUI_PatchVersion>
<DevWinUI_Base_PatchVersion>0</DevWinUI_Base_PatchVersion>
<DevWinUI_ContextMenu_PatchVersion>0</DevWinUI_ContextMenu_PatchVersion>
<DevWinUI_SourceGenerator_PatchVersion>0</DevWinUI_SourceGenerator_PatchVersion>
<DevWinUI_Gallery_PatchVersion>4</DevWinUI_Gallery_PatchVersion>
<DevWinUI_Gallery_PatchVersion>0</DevWinUI_Gallery_PatchVersion>

<!-- -Preview -->
<IsPreviewBuild>false</IsPreviewBuild>
<PreviewLabel>-Preview</PreviewLabel>
<IsPreviewBuild>true</IsPreviewBuild>
<PreviewLabel>-Preview1</PreviewLabel>
<PreviewBuildSuffix Condition="'$(IsPreviewBuild)' == 'true'">$(PreviewLabel)</PreviewBuildSuffix>

<!-- The NuGet package version -->
<XAMLToolsVersion>1.0.0-alpha.189</XAMLToolsVersion>
<CsWin32Version>0.3.269</CsWin32Version>
<Win2dVersion>1.3.2</Win2dVersion>

<NoWarn>WMC1506;WMC0001;CA1416;CS8632;CS0067;CS0078;CS0649;CS0414;NU1903;NU1902;NU1900;WIN2D0001</NoWarn>
<Win2dVersion>1.4.0</Win2dVersion>
<WASDKWinUIVersion>1.8.260204000</WASDKWinUIVersion>

<NoWarn>CS8632;WIN2D0001;WMC1510</NoWarn>

<OutputPath Condition="'$(MSBuildProjectName)' != $(GalleryAppName)">$(SolutionDir)Output\</OutputPath>

Expand All @@ -43,7 +44,7 @@
<IsAotCompatible Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">true</IsAotCompatible>
<CsWinRTAotWarningLevel Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">2</CsWinRTAotWarningLevel>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>

<!-- The NuGet package options -->
<PackageIcon>Icon.png</PackageIcon>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
Expand Down Expand Up @@ -77,9 +78,8 @@
</PropertyGroup>

<!-- The NuGet versions of dependencies to build against. -->
<ItemGroup Condition="'$(MSBuildProjectName)' != $(ContextMenuLibName) And '$(MSBuildProjectName)' != $(SourceGeneratorLibName)">
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.250907003" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.4948" />
<ItemGroup Condition="'$(MSBuildProjectName)' != $(ContextMenuLibName) And '$(MSBuildProjectName)' != $(SourceGeneratorLibName) And '$(MSBuildProjectName)' != $(GalleryAppName)">
<PackageReference Include="Microsoft.WindowsAppSDK.WinUI" Version="$(WASDKWinUIVersion)" />
</ItemGroup>

<ItemGroup Condition="'$(MSBuildProjectName)' != $(GalleryAppName)">
Expand Down
50 changes: 43 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Native AOT Compatible — 99% Full support for Native AOT compilation
|:---|:---|:---:|
|[![Visual Studio Marketplace Version](https://img.shields.io/visual-studio-marketplace/v/MahdiHosseini.DevWinUITemplates?label=DevWinUI-Templates)](https://marketplace.visualstudio.com/items?itemName=MahdiHosseini.DevWinUITemplates)|[![Marketplace](https://img.shields.io/visual-studio-marketplace/d/MahdiHosseini.DevWinUITemplates?logo=visual%20studio&label=DevWinUI-Templates)](https://marketplace.visualstudio.com/items?itemName=MahdiHosseini.DevWinUITemplates)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://github.com/Ghost1372/DevWinUI)|
||||
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI?label=DevWinUI)](https://www.nuget.org/packages/DevWinUI)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI?label=DevWinUI)](https://www.nuget.org/packages/DevWinUI)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUI)|
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI.Controls?label=DevWinUI.Controls)](https://www.nuget.org/packages/DevWinUI.Controls)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI.Controls?label=DevWinUI.Controls)](https://www.nuget.org/packages/DevWinUI.Controls)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUIControls/)|
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI.Base?label=DevWinUI.Base)](https://www.nuget.org/packages/DevWinUI.Base)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI.Base?label=DevWinUI.Base)](https://www.nuget.org/packages/DevWinUI.Base)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUIBase)|
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI?label=DevWinUI)](https://www.nuget.org/packages/DevWinUI)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI?label=DevWinUI)](https://www.nuget.org/packages/DevWinUI)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUI/)|
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI.ContextMenu?label=DevWinUI.ContextMenu)](https://www.nuget.org/packages/DevWinUI.ContextMenu)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI.ContextMenu?label=DevWinUI.ContextMenu)](https://www.nuget.org/packages/DevWinUI.ContextMenu)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUIContextMenu)|
|[![NuGet Version](https://img.shields.io/nuget/v/DevWinUI.SourceGenerator?label=DevWinUI.SourceGenerator)](https://www.nuget.org/packages/DevWinUI.SourceGenerator)|[![NuGet Download](https://img.shields.io/nuget/dt/DevWinUI.SourceGenerator?label=DevWinUI.SourceGenerator)](https://www.nuget.org/packages/DevWinUI.SourceGenerator)|[![Document](https://img.shields.io/badge/See%20Here-%20?logo=github&label=Document&color=red)](https://Ghost1372.github.io/DevWinUISourceGenerator)|

Expand Down Expand Up @@ -93,9 +93,41 @@ To compile the project, contribute new features, or explore guidelines:

👉 Please refer to our [Contributing Guide](CONTRIBUTING.md) for detailed instructions.

## ⚠️ Important: Package Renaming (v10.0.0+)

This version introduces **breaking changes** related to package renaming to support meta packages.

### Package Changes

| Version | Core Library | Controls Library |
|---------|--------------|------------------|
| **v9.9.4 and below** | `DevWinUI` | `DevWinUI.Controls` |
| **v10.0.0+** | `DevWinUI.Base` | `DevWinUI` |

### ResourceDictionary Path Changes

| Version | ResourceDictionary Path |
|---------|------------------------|
| **v9.9.4 and below** | `ms-appx:///DevWinUI.Controls/Themes/Generic.xaml` |
| **v10.0.0+** | `ms-appx:///DevWinUI/Themes/Generic.xaml` |

### Migration Guide

**If you are using v10.0.0 or above:**
- Install `DevWinUI.Base` for core utilities only
- Install `DevWinUI` for the full package (controls + core) — recommended for most users

**If you are using v9.9.4 or below:**
- Install `DevWinUI` for core utilities (services, helpers, extensions, managers)
- Install `DevWinUI.Controls` for custom controls, styles, and XAML resources (includes DevWinUI core)

### Note for Upgrading from v9.9.4 → v10.0.0+

Simply replace `DevWinUI.Controls` with `DevWinUI` in your project references and update the ResourceDictionary path as shown above. The `DevWinUI` package now includes everything from the old `DevWinUI.Controls` plus the core library.

---

## 🔥 DevWinUI 🔥
## 🔥 DevWinUI.Base 🔥
### ⚡ What’s Inside? ⚡

- ✨ CycleCollection
Expand Down Expand Up @@ -128,14 +160,15 @@ To compile the project, contribute new features, or explore guidelines:

#### 💻 Installation | Nuget
```
Install-Package DevWinUI
Install-Package DevWinUI.Base
```

---

## 🔥 DevWinUI.Controls 🔥
## 🔥 DevWinUI 🔥
### ⚡ What’s Inside? ⚡

- ✨ EdgeLighting
- ✨ RichButton
- ✨ Spoiler
- ✨ SidebarView
Expand Down Expand Up @@ -300,12 +333,12 @@ Install-Package DevWinUI
-
#### 💻 Installation | Nuget
```
Install-Package DevWinUI.Controls
Install-Package DevWinUI
```
After installing, add the following resource to app.xaml

```xml
<ResourceDictionary Source="ms-appx:///DevWinUI.Controls/Themes/Generic.xaml" />
<ResourceDictionary Source="ms-appx:///DevWinUI/Themes/Generic.xaml" />
```

---
Expand All @@ -331,6 +364,9 @@ Install-Package DevWinUI.ContextMenu

## 🕰️ History 🕰️

### EdgeLighting
![EdgeLighting](https://raw.githubusercontent.com/ghost1372/DevWinUI-Resources/refs/heads/main/DevWinUI-Docs/EdgeLighting.gif)

### RichButton
![RichButton](https://raw.githubusercontent.com/ghost1372/DevWinUI-Resources/refs/heads/main/DevWinUI-Docs/RichButton.gif)

Expand Down
6 changes: 3 additions & 3 deletions VSIX/DevWinUI_Template/DevWinUI_Template/Common/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

public static class Constants
{
internal readonly static string DevWinUI_Core = "DevWinUI";
internal readonly static string DevWinUI_Controls = "DevWinUI.Controls";
internal readonly static string DevWinUI_Core = "DevWinUI.Base";
internal readonly static string DevWinUI_Controls = "DevWinUI";
internal readonly static string DevWinUI_ContextMenu = "DevWinUI.ContextMenu";

internal readonly static string DevWinUI_Controls_Xaml = "<ResourceDictionary Source=\"ms-appx:///DevWinUI.Controls/Themes/Generic.xaml\" />";
internal readonly static string DevWinUI_SourceGenerator = "DevWinUI.SourceGenerator";
}
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ public static List<Library> InitDevWinUI()
{
new Library(Constants.DevWinUI_Core, Group.DevWinUI),
new Library(Constants.DevWinUI_Controls, Group.DevWinUI),
new Library(Constants.DevWinUI_SourceGenerator, Group.DevWinUI),
new Library(Constants.DevWinUI_ContextMenu, Group.DevWinUI)
};
return list;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,22 +374,6 @@ private void AddReplacementsDictionary(Dictionary<string, string> replacementsDi
}
#endregion

#region Blank

if (WizardConfig.IsBlank)
{
if (WizardConfig.LibraryDic != null && WizardConfig.LibraryDic.ContainsKey(Constants.DevWinUI_Controls))
{
replacementsDictionary.Add("$DevWinUI.Controls$", Environment.NewLine + Constants.DevWinUI_Controls_Xaml);
}
else
{
replacementsDictionary.Add("$DevWinUI.Controls$", "");
}
}

#endregion

#region Add Xaml Dictionary if User Use Extra Lib
if (WizardConfig.LibraryDic != null && WizardConfig.LibraryDic.ContainsKey(Constants.DevWinUI_ContextMenu))
{
Expand Down
Loading