Skip to content

Commit c3a50f7

Browse files
authored
Add support for ARM64, update extensions and docs, allow non-Windows builds (#1196)
* Append dev containers * Add support for ARM64 for WPF UI VS22 extension * Update .gitignore * Update pipelines * Bump version * Update docs * Update wpf-ui-lock.yml
1 parent d27947e commit c3a50f7

33 files changed

+1090
-8064
lines changed

Diff for: .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:8.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+
}

Diff for: .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

Diff for: .github/workflows/wpf-ui-cd-extension.yaml

+10-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,17 @@ jobs:
2424
run: nuget restore Wpf.Ui.sln
2525
2626
- name: Build the solution
27-
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
2831
2932
- uses: actions/upload-artifact@v4
3033
with:
31-
name: wpf-ui-vs22-extension
34+
name: wpf-ui-vs22-extension-x64
3235
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

Diff for: .github/workflows/wpf-ui-cd-nuget.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ jobs:
2222
with:
2323
dotnet-version: 8.x
2424

25+
- name: Fetch the certificate
26+
run: |
27+
$signing_keys_payload = [System.Convert]::FromBase64String("${{ secrets.STRONG_NAME_KEY }}")
28+
$currentDirectory = Get-Location
29+
$certificatePath = Join-Path -Path $currentDirectory -ChildPath "src/lepo.snk"
30+
[IO.File]::WriteAllBytes("$certificatePath", $signing_keys_payload)
31+
2532
- name: Install dependencies
2633
run: dotnet restore
2734

@@ -31,6 +38,9 @@ jobs:
3138
- name: Build
3239
run: dotnet build src\Wpf.Ui.Abstractions\Wpf.Ui.Abstractions.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
3340

41+
- name: Build
42+
run: dotnet build src\Wpf.Ui.DependencyInjection\Wpf.Ui.DependencyInjection.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
43+
3444
- name: Build
3545
run: dotnet build src\Wpf.Ui.Tray\Wpf.Ui.Tray.csproj --configuration Release --no-restore -p:SourceLinkEnabled=true
3646

@@ -39,3 +49,9 @@ jobs:
3949

4050
- name: Publish the symbols to NuGet.org
4151
run: nuget push **\*.snupkg -NonInteractive -SkipDuplicate -Source 'https://api.nuget.org/v3/index.json'
52+
53+
- name: Upload NuGet packages as artifacts
54+
uses: actions/upload-artifact@v4
55+
with:
56+
name: nuget-packages
57+
path: '**\*.nupkg'

Diff for: .github/workflows/wpf-ui-lock.yml

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

33
on:
44
schedule:
5-
- cron: '0 * * * *'
5+
- cron: '0 0 * * 0'
66
workflow_dispatch:
77

88
permissions:

Diff for: .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

Diff for: Directory.Build.props

+2-1
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.2</Version>
10+
<AssemblyVersion>4.0.0</AssemblyVersion>
1011
</PropertyGroup>
1112

1213
<PropertyGroup>

Diff for: 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

Diff for: 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" />

Diff for: 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,15 +14,22 @@ 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.
2322

24-
## 🚀 Getting started
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.
2528

29+
[Sponsor WPF UI on GitHub](https://github.com/sponsors/lepoco)
30+
31+
## 🚀 Getting started
32+
ąś
2633
For a starter guide see our [documentation](https://wpfui.lepo.co/documentation/).
2734

2835
**WPF UI Gallery** is a free application available in the _Microsoft Store_, with which you can test all functionalities.
@@ -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,14 +66,6 @@ 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

7871
Documentation can be found at https://wpfui.lepo.co/. We also have a [tutorial](https://wpfui.lepo.co/tutorial/) over there for newcomers.
@@ -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.

Diff for: docs/docfx.json

+28-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
{
44
"src": [
55
{
6-
"files": ["src/Wpf.Ui/*.csproj", "src/Wpf.Ui.Tray/*.csproj", "src/Wpf.Ui.Abstractions/*.csproj", "src/Wpf.Ui.DependencyInjection/*.csproj"],
6+
"files": [
7+
"src/Wpf.Ui/*.csproj",
8+
"src/Wpf.Ui.Tray/*.csproj",
9+
"src/Wpf.Ui.Abstractions/*.csproj",
10+
"src/Wpf.Ui.DependencyInjection/*.csproj"
11+
],
712
"src": "../"
813
}
914
],
@@ -18,8 +23,13 @@
1823
"build": {
1924
"content": [
2025
{
21-
"files": ["**/*.{md,yml}"],
22-
"exclude": ["_site/**", "obj/**"]
26+
"files": [
27+
"**/*.{md,yml}"
28+
],
29+
"exclude": [
30+
"_site/**",
31+
"obj/**"
32+
]
2333
}
2434
],
2535
"resource": [
@@ -30,20 +40,30 @@
3040
"manifest.webmanifest",
3141
"robots.txt"
3242
],
33-
"exclude": ["_site/**", "obj/**"]
43+
"exclude": [
44+
"_site/**",
45+
"obj/**"
46+
]
3447
}
3548
],
36-
"xrefService": ["https://xref.docs.microsoft.com/query?uid={uid}"],
37-
"postProcessors": ["ExtractSearchIndex"],
49+
"xrefService": [
50+
"https://xref.docs.microsoft.com/query?uid={uid}"
51+
],
52+
"postProcessors": [
53+
"ExtractSearchIndex"
54+
],
3855
"globalMetadata": {
3956
"_appTitle": "WPF UI",
4057
"_appName": "WPF UI",
4158
"_appFaviconPath": "images/favicon.ico",
4259
"_appLogoPath": "images/wpfui.png",
43-
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2024 <a href=\"https://dev.lepo.co/\">lepo.co</a></span>"
60+
"_appFooter": "<span>Made with <a href=\"https://dotnet.github.io/docfx\" rel=\"noreferrer\">docfx</a>, <a href=\"https://chat.openai.com/\" rel=\"noreferrer\">ChatGPT</a> and <a href=\"https://www.deepl.com/\" rel=\"noreferrer\">DeepL</a> | Copyright © 2024 <a href=\"https://lepo.co/\">lepo.co</a></span>"
4461
},
4562
"dest": "_site",
46-
"template": ["default", "templates/wpfui"],
63+
"template": [
64+
"default",
65+
"templates/wpfui"
66+
],
4767
"globalMetadataFiles": [],
4868
"fileMetadataFiles": [],
4969
"markdownEngineName": "markdig",

Diff for: docs/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114

115115
![Text Editor Sample](https://user-images.githubusercontent.com/13592821/165918838-a65cbb86-4fc4-4efb-adb7-e39027fb661f.png)
116116

117-
[Created with ❤ in Poland by lepo.co](https://dev.lepo.co/)
117+
[Created with ❤ in Poland by lepo.co](https://lepo.co/)
118118
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`.
119119

120120
[![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)

0 commit comments

Comments
 (0)