Skip to content

Commit 69dea37

Browse files
authored
Merge branch 'main' into main
2 parents 3e2d042 + 0fc9208 commit 69dea37

File tree

91 files changed

+2524
-8770
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+2524
-8770
lines changed

.devcontainer/devcontainer.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "WPF UI Docs Dev Container",
3+
"image": "mcr.microsoft.com/dotnet/sdk:9.0",
4+
"features": {
5+
"ghcr.io/devcontainers/features/node:1": {
6+
"version": "20"
7+
}
8+
},
9+
"postCreateCommand": "./.devcontainer/post-create.sh",
10+
"forwardPorts": [
11+
8080
12+
],
13+
"remoteEnv": {
14+
"NODE_ENV": "development"
15+
}
16+
}

.devcontainer/post-create.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
3+
apt-get update
4+
apt-get install -y openssh-client
5+
6+
cd docs/templates
7+
npm ci
8+
npm run build
9+
dotnet tool install -g docfx
10+
11+
export PATH="$PATH:/root/.dotnet/tools"
12+
13+
cd ../
14+
docfx docfx.json --serve
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: wpf-ui-top-issues-dashboard
2+
on:
3+
schedule:
4+
- cron: '0 0 */1 * *'
5+
6+
jobs:
7+
ShowAndLabelTopIssues:
8+
name: Display and label top issues.
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Top Issues action
12+
uses: rickstaa/[email protected]
13+
env:
14+
github_token: ${{ secrets.GITHUB_TOKEN }}
15+
with:
16+
top_list_size: 10
17+
label: true
18+
dashboard: true
19+
dashboard_show_total_reactions: true
20+
top_issues: true
21+
top_bugs: true
22+
top_features: true
23+
feature_label: feature
24+
top_pull_requests: true

.github/workflows/wpf-ui-cd-docs.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ jobs:
3333
uses: actions/setup-node@v4
3434
with:
3535
node-version: 18.x
36-
- name: Setup .NET Core SDK 8.x
36+
- name: Setup .NET Core SDK 9.x
3737
uses: actions/setup-dotnet@v4
3838
with:
39-
dotnet-version: 8.x
39+
dotnet-version: 9.x
4040

4141
- name: Install docfx
4242
run: dotnet tool update -g docfx

.github/workflows/wpf-ui-cd-extension.yaml

+12-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ name: wpf-ui-cd-extension
33
on:
44
push:
55
branches: [main]
6+
paths:
7+
- 'src/Wpf.Ui.Extension**'
68

79
workflow_dispatch:
810

@@ -22,9 +24,17 @@ jobs:
2224
run: nuget restore Wpf.Ui.sln
2325

2426
- name: Build the solution
25-
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="x64" -p:GITHUB_ACTIONS=True
27+
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="x64" -p:ProductArchitecture="amd64" -p:GITHUB_ACTIONS=True
28+
29+
- name: Build the solution
30+
run: msbuild src\Wpf.Ui.Extension\Wpf.Ui.Extension.csproj /t:Rebuild -p:Configuration=Release -p:RestorePackages=false -p:Platform="arm64" -p:ProductArchitecture="arm64" -p:GITHUB_ACTIONS=True
2631

2732
- uses: actions/upload-artifact@v4
2833
with:
29-
name: wpf-ui-vs22-extension
34+
name: wpf-ui-vs22-extension-x64
3035
path: src\Wpf.Ui.Extension\bin\x64\Release\Wpf.Ui.Extension.vsix
36+
37+
- uses: actions/upload-artifact@v4
38+
with:
39+
name: wpf-ui-vs22-extension-arm64
40+
path: src\Wpf.Ui.Extension\bin\arm64\Release\Wpf.Ui.Extension.vsix

.github/workflows/wpf-ui-cd-nuget.yaml

+23-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ name: wpf-ui-cd-nuget
22

33
on:
44
push:
5-
branches: [main]
5+
branches:
6+
- main
7+
- release/*
8+
paths:
9+
- 'src/**'
610

711
workflow_dispatch:
812

@@ -17,10 +21,17 @@ jobs:
1721
- uses: nuget/setup-nuget@v2
1822
with:
1923
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
20-
- name: Setup .NET Core SDK 8.x
24+
- name: Setup .NET Core SDK 9.x
2125
uses: actions/setup-dotnet@v4
2226
with:
23-
dotnet-version: 8.x
27+
dotnet-version: 9.x
28+
29+
- name: Fetch the certificate
30+
run: |
31+
$signing_keys_payload = [System.Convert]::FromBase64String("${{ secrets.STRONG_NAME_KEY }}")
32+
$currentDirectory = Get-Location
33+
$certificatePath = Join-Path -Path $currentDirectory -ChildPath "src/lepo.snk"
34+
[IO.File]::WriteAllBytes("$certificatePath", $signing_keys_payload)
2435
2536
- name: Install dependencies
2637
run: dotnet restore
@@ -31,6 +42,9 @@ jobs:
3142
- name: Build
3243
run: dotnet build src\Wpf.Ui.Abstractions\Wpf.Ui.Abstractions.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
3344

45+
- name: Build
46+
run: dotnet build src\Wpf.Ui.DependencyInjection\Wpf.Ui.DependencyInjection.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
47+
3448
- name: Build
3549
run: dotnet build src\Wpf.Ui.Tray\Wpf.Ui.Tray.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
3650

@@ -39,3 +53,9 @@ jobs:
3953

4054
- name: Publish the symbols to NuGet.org
4155
run: nuget push **\*.snupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
56+
57+
- name: Upload NuGet packages as artifacts
58+
uses: actions/upload-artifact@v4
59+
with:
60+
name: nuget-packages
61+
path: '**\*.nupkg'

.github/workflows/wpf-ui-lock.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ name: wpf-ui-lock
22

33
on:
44
schedule:
5-
- cron: "0 0 * * *"
5+
- cron: '0 0 * * 0'
6+
workflow_dispatch:
7+
8+
permissions:
9+
issues: write
10+
pull-requests: write
11+
discussions: write
12+
13+
concurrency:
14+
group: lock-threads
615

716
jobs:
8-
lock:
17+
action:
918
runs-on: ubuntu-latest
1019
steps:
1120
- uses: dessant/lock-threads@v5
12-
with:
13-
# https://github.com/dessant/lock-threads
14-
github-token: ${{ github.token }}
15-
issue-inactive-days: "90"
16-
exclude-issue-created-before: ""
17-
exclude-any-issue-labels: "keep-unlocked, status:awaiting response"
18-
add-issue-labels: "locked-due-to-inactivity"
19-
issue-comment: ""
20-
issue-lock-reason: "resolved"

.github/workflows/wpf-ui-pr-validator.yaml

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ name: wpf-ui-pr-validator
22

33
on:
44
pull_request:
5-
branches: [development]
6-
push:
7-
branches: [development]
5+
branches: [main]
86

97
workflow_dispatch:
108

@@ -19,10 +17,10 @@ jobs:
1917
- uses: nuget/setup-nuget@v2
2018
with:
2119
nuget-api-key: ${{ secrets.NUGET_API_KEY }}
22-
- name: Setup .NET Core SDK 8.x
20+
- name: Setup .NET Core SDK 9.x
2321
uses: actions/setup-dotnet@v4
2422
with:
25-
dotnet-version: 8.x
23+
dotnet-version: 9.x
2624

2725
- name: Install dependencies
2826
run: dotnet restore

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22
## files generated by popular Visual Studio add-ons.
33
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
44

5+
# Strong Name Key files
6+
src/lepo.snk
7+
58
# DocFX
69
docs/api/
710

11+
# Desktop service store
12+
.DS_Store
13+
814
# User-specific files
915
*.rsuser
1016
*.suo

Directory.Build.props

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
</PropertyGroup>
77

88
<PropertyGroup>
9-
<Version>4.0.0-rc.1</Version>
9+
<Version>4.0.0-rc.3</Version>
10+
<AssemblyVersion>4.0.0</AssemblyVersion>
1011
</PropertyGroup>
1112

1213
<PropertyGroup>
@@ -40,7 +41,7 @@
4041

4142
<PropertyGroup>
4243
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
43-
<LangVersion>12.0</LangVersion>
44+
<LangVersion>13.0</LangVersion>
4445
<Nullable>enable</Nullable>
4546

4647
<!--

Directory.Build.targets

+3-38
Original file line numberDiff line numberDiff line change
@@ -44,46 +44,11 @@
4444
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer>
4545
</PropertyGroup>
4646

47-
<!--
48-
The following target has been ported from TerraFX.Interop.Windows.
49-
See: https://github.com/terrafx/terrafx.interop.windows.
50-
Using [module: SkipLocalsInit] suppresses the .init flag for local variables for the entire module.
51-
This doesn't affect the correctness of methods in this assembly, as none of them are relying on the
52-
JIT ensuring that all local memory is zeroed out to work. Doing this can provide some minor
53-
performance benefits, depending on the workload.
54-
-->
55-
<PropertyGroup>
56-
<GeneratedSkipLocalsInitFile Condition="'$(GeneratedSkipLocalsInitFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).SkipLocalsInit.g.cs</GeneratedSkipLocalsInitFile>
57-
<GeneratedSkipLocalsInitFileLines>
58-
<![CDATA[//------------------------------------------------------------------------------
59-
// <auto-generated>
60-
// This code was generated by a tool.
61-
//
62-
// Changes to this file may cause incorrect behavior and will be lost if
63-
// the code is regenerated.
64-
// </auto-generated>
65-
//------------------------------------------------------------------------------
66-
67-
[module: global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]]]>
68-
</GeneratedSkipLocalsInitFileLines>
47+
<PropertyGroup Condition="'$(SourceLinkEnabled)' == 'true' AND '$(GeneratePackageOnBuild)' == 'true'">
48+
<SignAssembly>true</SignAssembly>
49+
<AssemblyOriginatorKeyFile>$(RepositoryDirectory)\src\lepo.snk</AssemblyOriginatorKeyFile>
6950
</PropertyGroup>
7051

71-
<Target Name="GenerateSkipLocalsInit"
72-
BeforeTargets="BeforeCompile;CoreCompile"
73-
DependsOnTargets="PrepareForBuild"
74-
Condition="'$(Language)' == 'C#'"
75-
Inputs="$(MSBuildAllProjects)"
76-
Outputs="$(GeneratedSkipLocalsInitFile)">
77-
78-
<!-- Write the file with the attribute -->
79-
<WriteLinesToFile Lines="$(GeneratedSkipLocalsInitFileLines)" Overwrite="true" WriteOnlyWhenDifferent="true" File="$(GeneratedSkipLocalsInitFile)" />
80-
81-
<!-- Include the generated file in the list of files to compile -->
82-
<ItemGroup>
83-
<Compile Include="$(GeneratedSkipLocalsInitFile)" />
84-
</ItemGroup>
85-
</Target>
86-
8752
<Target Name="WpfSourceLinkWorkaround" BeforeTargets="InitializeSourceRootMappedPaths" Condition="'$(UseWPF)' == 'true'">
8853
<!-- WPF causes an error with SourceLink because its build targets create a temporary project without a PackageReference to SourceLink, see https://github.com/dotnet/sourcelink/issues/91,
8954
causing the @SourceRoot property to be unexpectedly empty for the MapSourceRoot task

Directory.Packages.props

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
1212
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
1313
<PackageVersion Include="Microsoft.VisualStudio.CoreUtility" Version="17.2.3194" />
14-
<PackageVersion Include="Microsoft.VisualStudio.SDK" Version="17.3.32804.24" />
15-
<PackageVersion Include="Microsoft.VSSDK.BuildTools" Version="17.7.2196" />
14+
<PackageVersion Include="Microsoft.VisualStudio.SDK" Version="17.10.40171" />
15+
<PackageVersion Include="Microsoft.VSSDK.BuildTools" Version="17.11.414" />
1616
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2592.51" />
1717
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.2428" />
1818
<PackageVersion Include="NativeMethods" Version="0.0.3" />

README.md

+14-28
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
# WPF UI
55

6-
[Created with ❤ in Poland by lepo.co](https://dev.lepo.co/)
7-
A simple way to make your application written in WPF keep up with modern design trends. Library changes the base elements like `Page`, `ToggleButton` or `List`, and also includes additional controls like `Navigation`, `NumberBox`, `Dialog` or `Snackbar`.
6+
[Created with ❤ in Poland by lepo.co](https://lepo.co/)
7+
WPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly. Library changes the base elements like `Page`, `ToggleButton` or `List`, and also includes additional controls like `Navigation`, `NumberBox`, `Dialog` or `Snackbar`.
88

99
[![Discord](https://img.shields.io/discord/1071051348348514375?label=discord)](https://discord.gg/AR9ywDUwGq) [![GitHub license](https://img.shields.io/github/license/lepoco/wpfui)](https://github.com/lepoco/wpfui/blob/master/LICENSE) [![Nuget](https://img.shields.io/nuget/v/WPF-UI)](https://www.nuget.org/packages/WPF-UI/) [![Nuget](https://img.shields.io/nuget/dt/WPF-UI?label=nuget)](https://www.nuget.org/packages/WPF-UI/) [![VS 2022 Downloads](https://img.shields.io/visual-studio-marketplace/i/lepo.WPF-UI?label=vs-2022)](https://marketplace.visualstudio.com/items?itemName=lepo.WPF-UI) [![Sponsors](https://img.shields.io/github/sponsors/lepoco)](https://github.com/sponsors/lepoco)
1010

@@ -14,12 +14,19 @@ A simple way to make your application written in WPF keep up with modern design
1414

1515
https://bank.gov.ua/en/about/humanitarian-aid-to-ukraine
1616

17-
### Refugees in Poland
17+
![ua](https://user-images.githubusercontent.com/13592821/184498735-d296feb8-0f9b-45df-bc0d-b7f0b6f580ed.png)
1818

19-
Many forms of support for refugees from Ukraine and organizations supporting them are available on the Polish government website
20-
https://pomagamukrainie.gov.pl/chce-pomoc/prywatnie/pomoc-finansowa
19+
## 🛟 Support plans
2120

22-
![ua](https://user-images.githubusercontent.com/13592821/184498735-d296feb8-0f9b-45df-bc0d-b7f0b6f580ed.png)
21+
To ensure you receive the expert guidance you need, we offer a variety of support plans designed to meet the diverse needs of our community. Whether you are looking to modernize your WPF applications or need assistance with our other libraries, our tailored support solutions are here to help. From priority email support to 24/7 dedicated assistance, we provide flexible plans to suit your project requirements.
22+
23+
[Take a look at the lepo.co support plans](https://lepo.co/support)
24+
25+
## 🤝 Help us keep working on this project
26+
27+
Support the development of WPF UI and other innovative projects by becoming a sponsor on GitHub! Your monthly or one-time contributions help us continue to deliver high-quality, open-source solutions that empower developers worldwide.
28+
29+
[Sponsor WPF UI on GitHub](https://github.com/sponsors/lepoco)
2330

2431
## 🚀 Getting started
2532

@@ -45,18 +52,12 @@ https://marketplace.visualstudio.com/items?itemName=lepo.wpf-ui
4552

4653
![Monaco Editor](https://user-images.githubusercontent.com/13592821/258610583-7d71f69d-45b3-4be6-bcb8-8cf6cd60a2ff.png)
4754

48-
![Text Editor Sample](https://user-images.githubusercontent.com/13592821/165918838-a65cbb86-4fc4-4efb-adb7-e39027fb661f.png)
49-
5055
![Store App Sample](https://user-images.githubusercontent.com/13592821/165918914-6948fb42-1ee1-4c36-870e-65bb8ffe3c8a.png)
5156

5257
## 🏗️ Works with Visual Studio Designer
5358

5459
![VS2022 Designer Preview](https://user-images.githubusercontent.com/13592821/165919228-0aa3a36c-fb37-4198-835e-53488845226c.png)
5560

56-
## 🏁 Virtualized panels for displaying thousands controls
57-
58-
![WPF UI virtualized wrap panels](https://user-images.githubusercontent.com/13592821/167254364-bc7d1106-2740-4337-907c-0e0f1ce4c320.png)
59-
6061
## ❤️ Custom Tray icon and menu in pure WPF
6162

6263
![WPF UI Tray menu in WPF](https://user-images.githubusercontent.com/13592821/166259470-2d48a88e-47ce-4f8f-8f07-c9b110de64a5.png)
@@ -65,17 +66,9 @@ https://marketplace.visualstudio.com/items?itemName=lepo.wpf-ui
6566

6667
![WPF UI Snap Layout for WPF](https://user-images.githubusercontent.com/13592821/166259869-e60d37e4-ded4-46bf-80d9-f92c47266f34.png)
6768

68-
## 🕹️ Radiograph
69-
70-
Radiograph is a computer hardware monitoring app that uses **WPF UI**.
71-
72-
![Radiograph screenshot](https://user-images.githubusercontent.com/13592821/165918625-6cc72bb1-2617-40fa-a193-60fea0efcd65.png)
73-
74-
[<img src="https://github.com/lepoco/wpfui/blob/main/.github/assets/microsoft-badge.png?raw=true" width="120">](https://www.microsoft.com/en-us/p/radiograph/9nh1p86h06cg?activetab=pivot:overviewtab)
75-
7669
## 📖 Documentation
7770

78-
Documentation can be found at https://wpfui.lepo.co/. We also have a [tutorial](https://wpfui.lepo.co/tutorial/) over there for newcomers.
71+
Documentation can be found at https://wpfui.lepo.co/. We also have a [tutorial](#-getting-started) over there for newcomers.
7972

8073
## 🚧 Development
8174

@@ -158,13 +151,6 @@ In the app dictionaries, you can add an alternate path to the font
158151
<FontFamily x:Key="SegoeFluentIcons">pack://application:,,,/;component/Fonts/#Segoe Fluent Icons</FontFamily>
159152
```
160153

161-
## Compilation
162-
163-
Use Visual Studio 2022 and invoke the .sln.
164-
165-
Visual Studio
166-
**WPF UI** is an Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for WPF UI. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.
167-
168154
## Code of Conduct
169155

170156
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.

0 commit comments

Comments
 (0)