mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-03-03 00:00:55 +08:00
Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1062175204 | ||
|
|
0dda40d322 | ||
|
|
37feb8a9a7 | ||
|
|
c632c6c1f5 | ||
|
|
be2b25a94b | ||
|
|
47c6899b94 | ||
|
|
975d14a36f | ||
|
|
7a13de00a6 | ||
|
|
f7ce4aef30 | ||
|
|
f9a85734d1 | ||
|
|
9dd846f6be | ||
|
|
5384de7b23 | ||
|
|
7ccb6fd41a | ||
|
|
521ed1bd0f | ||
|
|
55d472300e | ||
|
|
a45f50005c | ||
|
|
cd9daf11da | ||
|
|
1c69f53c3c | ||
|
|
8da2e44d4c | ||
|
|
6f2129639a | ||
|
|
865b453b65 | ||
|
|
5622069446 | ||
|
|
76a3d4207f | ||
|
|
513bbba154 | ||
|
|
727fedaedf | ||
|
|
3082ef9ad0 | ||
|
|
985ad0c637 | ||
|
|
59576d4cfd | ||
|
|
c2a072041d | ||
|
|
a62655d25a | ||
|
|
2d2f2afec1 | ||
|
|
1f02f28f8b | ||
|
|
ec2202e2ef | ||
|
|
68dfaa8a57 | ||
|
|
16a8d6b37d | ||
|
|
6d0f3526a9 | ||
|
|
e5822ff6d1 | ||
|
|
08d55c2b7a | ||
|
|
297d4ab825 | ||
|
|
469e2080d4 | ||
|
|
4d93b387a7 | ||
|
|
69821dc15e | ||
|
|
a9463b8fad | ||
|
|
37598f94e6 | ||
|
|
1cb3fe956d | ||
|
|
7b41fd3f33 | ||
|
|
8e675538ba | ||
|
|
b61d939fce | ||
|
|
d206876c03 | ||
|
|
4522b48f22 | ||
|
|
ffa2f04842 | ||
|
|
d400a53784 | ||
|
|
a31b52cc29 | ||
|
|
5ffcb32b18 |
26
.github/workflows/pack-nightly.yml
vendored
26
.github/workflows/pack-nightly.yml
vendored
@@ -10,23 +10,19 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
Semi_Avalonia:
|
Semi_Avalonia:
|
||||||
description: 'Pack Semi.Avalonia'
|
description: 'Pack Semi.Avalonia'
|
||||||
required: true
|
default: true
|
||||||
default: 'true'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_ColorPicker:
|
Semi_Avalonia_ColorPicker:
|
||||||
description: 'Pack Semi.Avalonia.ColorPicker'
|
description: 'Pack Semi.Avalonia.ColorPicker'
|
||||||
required: true
|
default: true
|
||||||
default: 'true'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_DataGrid:
|
Semi_Avalonia_DataGrid:
|
||||||
description: 'Pack Semi.Avalonia.DataGrid'
|
description: 'Pack Semi.Avalonia.DataGrid'
|
||||||
required: true
|
default: false
|
||||||
default: 'false'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_TreeDataGrid:
|
Semi_Avalonia_TreeDataGrid:
|
||||||
description: 'Pack Semi.Avalonia.TreeDataGrid'
|
description: 'Pack Semi.Avalonia.TreeDataGrid'
|
||||||
required: true
|
default: false
|
||||||
default: 'false'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -35,28 +31,28 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Get Version
|
- name: Get Version
|
||||||
run: |
|
run: |
|
||||||
VERSION_TIMESTAMP=$(date +'%Y%m%d%H%M%S')
|
VERSION_TIMESTAMP=$(date +'%Y%m%d%H%M%S')
|
||||||
VERSION="${{ github.event.inputs.Version_Prefix }}-nightly-${VERSION_TIMESTAMP}"
|
VERSION="${{ inputs.Version_Prefix }}-nightly-${VERSION_TIMESTAMP}"
|
||||||
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia
|
- name: Pack Semi.Avalonia
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia == 'true' }}
|
if: ${{ inputs.Semi_Avalonia }}
|
||||||
run: dotnet pack src/Semi.Avalonia -o nugets /p:Version=${{ env.VERSION }}
|
run: dotnet pack src/Semi.Avalonia -o nugets /p:Version=${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.ColorPicker
|
- name: Pack Semi.Avalonia.ColorPicker
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_ColorPicker == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_ColorPicker }}
|
||||||
run: dotnet pack src/Semi.Avalonia.ColorPicker -o nugets /p:Version=${{ env.VERSION }}
|
run: dotnet pack src/Semi.Avalonia.ColorPicker -o nugets /p:Version=${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.DataGrid
|
- name: Pack Semi.Avalonia.DataGrid
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_DataGrid == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_DataGrid }}
|
||||||
run: dotnet pack src/Semi.Avalonia.DataGrid -o nugets /p:Version=${{ env.VERSION }}
|
run: dotnet pack src/Semi.Avalonia.DataGrid -o nugets /p:Version=${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.TreeDataGrid
|
- name: Pack Semi.Avalonia.TreeDataGrid
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_TreeDataGrid == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_TreeDataGrid }}
|
||||||
run: dotnet pack src/Semi.Avalonia.TreeDataGrid -o nugets /p:Version=${{ env.VERSION }}
|
run: dotnet pack src/Semi.Avalonia.TreeDataGrid -o nugets /p:Version=${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Add NuGet Source
|
- name: Add NuGet Source
|
||||||
@@ -66,7 +62,7 @@ jobs:
|
|||||||
run: dotnet nuget push "nugets/*.nupkg" --api-key ${{ secrets.IRIHI_NUGET_API_KEY }} --source irihi.tech --skip-duplicate
|
run: dotnet nuget push "nugets/*.nupkg" --api-key ${{ secrets.IRIHI_NUGET_API_KEY }} --source irihi.tech --skip-duplicate
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: nugets
|
name: nugets
|
||||||
path: nugets
|
path: nugets
|
||||||
|
|||||||
48
.github/workflows/pack.yml
vendored
48
.github/workflows/pack.yml
vendored
@@ -3,26 +3,43 @@ name: Pack to NuGet
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
|
Upload_to_NuGet:
|
||||||
|
description: 'Upload to NuGet'
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
Semi_Avalonia:
|
Semi_Avalonia:
|
||||||
description: 'Pack Semi.Avalonia'
|
description: 'Pack Semi.Avalonia'
|
||||||
required: true
|
default: true
|
||||||
default: 'true'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_ColorPicker:
|
Semi_Avalonia_ColorPicker:
|
||||||
description: 'Pack Semi.Avalonia.ColorPicker'
|
description: 'Pack Semi.Avalonia.ColorPicker'
|
||||||
required: true
|
default: true
|
||||||
default: 'true'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_DataGrid:
|
Semi_Avalonia_DataGrid:
|
||||||
description: 'Pack Semi.Avalonia.DataGrid'
|
description: 'Pack Semi.Avalonia.DataGrid'
|
||||||
required: true
|
default: false
|
||||||
default: 'false'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
Semi_Avalonia_TreeDataGrid:
|
Semi_Avalonia_TreeDataGrid:
|
||||||
description: 'Pack Semi.Avalonia.TreeDataGrid'
|
description: 'Pack Semi.Avalonia.TreeDataGrid'
|
||||||
required: true
|
default: false
|
||||||
default: 'false'
|
|
||||||
type: boolean
|
type: boolean
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
Upload_to_NuGet:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
Semi_Avalonia:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
Semi_Avalonia_ColorPicker:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
Semi_Avalonia_DataGrid:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
Semi_Avalonia_TreeDataGrid:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Pack_to_NuGet:
|
Pack_to_NuGet:
|
||||||
@@ -30,29 +47,30 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia
|
- name: Pack Semi.Avalonia
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia == 'true' }}
|
if: ${{ inputs.Semi_Avalonia }}
|
||||||
run: dotnet pack src/Semi.Avalonia -o nugets
|
run: dotnet pack src/Semi.Avalonia -o nugets
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.ColorPicker
|
- name: Pack Semi.Avalonia.ColorPicker
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_ColorPicker == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_ColorPicker }}
|
||||||
run: dotnet pack src/Semi.Avalonia.ColorPicker -o nugets
|
run: dotnet pack src/Semi.Avalonia.ColorPicker -o nugets
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.DataGrid
|
- name: Pack Semi.Avalonia.DataGrid
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_DataGrid == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_DataGrid }}
|
||||||
run: dotnet pack src/Semi.Avalonia.DataGrid -o nugets
|
run: dotnet pack src/Semi.Avalonia.DataGrid -o nugets
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.TreeDataGrid
|
- name: Pack Semi.Avalonia.TreeDataGrid
|
||||||
if: ${{ github.event.inputs.Semi_Avalonia_TreeDataGrid == 'true' }}
|
if: ${{ inputs.Semi_Avalonia_TreeDataGrid }}
|
||||||
run: dotnet pack src/Semi.Avalonia.TreeDataGrid -o nugets
|
run: dotnet pack src/Semi.Avalonia.TreeDataGrid -o nugets
|
||||||
|
|
||||||
- name: Publish NuGet package
|
- name: Upload to NuGet
|
||||||
|
if: ${{ inputs.Upload_to_NuGet }}
|
||||||
run: dotnet nuget push "nugets/*.nupkg" --api-key ${{ secrets.NUGET_ORG_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
run: dotnet nuget push "nugets/*.nupkg" --api-key ${{ secrets.NUGET_ORG_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: nugets
|
name: nugets
|
||||||
path: nugets
|
path: nugets
|
||||||
|
|||||||
279
.github/workflows/publish.yml
vendored
279
.github/workflows/publish.yml
vendored
@@ -3,130 +3,223 @@ name: Publish Demo
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
platform:
|
win-x64:
|
||||||
description: 'Platform to publish'
|
|
||||||
required: true
|
|
||||||
default: 'all'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- 'windows'
|
|
||||||
- 'linux'
|
|
||||||
- 'android'
|
|
||||||
- 'all'
|
|
||||||
win64:
|
|
||||||
description: 'Windows x64'
|
description: 'Windows x64'
|
||||||
required: true
|
default: false
|
||||||
default: true
|
|
||||||
type: boolean
|
type: boolean
|
||||||
win64_aot:
|
win-x64-aot:
|
||||||
description: 'Windows x64 AOT'
|
description: 'Windows x64 AOT'
|
||||||
required: true
|
default: false
|
||||||
default: true
|
|
||||||
type: boolean
|
type: boolean
|
||||||
linux64:
|
linux-x64:
|
||||||
description: 'Linux x64'
|
description: 'Linux x64'
|
||||||
required: true
|
default: false
|
||||||
default: true
|
|
||||||
type: boolean
|
type: boolean
|
||||||
linux64_drm:
|
linux-x64-aot:
|
||||||
description: 'Linux x64 DRM'
|
description: 'Linux x64 AOT'
|
||||||
required: true
|
default: false
|
||||||
default: true
|
|
||||||
type: boolean
|
type: boolean
|
||||||
|
drm-linux-x64:
|
||||||
|
description: 'DRM Linux x64'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
drm-linux-x64-aot:
|
||||||
|
description: 'DRM Linux x64 AOT'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
osx-arm64:
|
||||||
|
description: 'macOS arm64'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
osx-arm64-aot:
|
||||||
|
description: 'macOS arm64 AOT'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
android-arm64:
|
||||||
|
description: 'Android arm64'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
win-x64:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
win-x64-aot:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
linux-x64:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
linux-x64-aot:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
drm-linux-x64:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
drm-linux-x64-aot:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
osx-arm64:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
osx-arm64-aot:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
android-arm64:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
windows:
|
win-x64:
|
||||||
if: ${{ github.event.inputs.platform == 'windows' || github.event.inputs.platform == 'all' }}
|
if: ${{inputs.win-x64}}
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Make upload directory
|
|
||||||
run: mkdir upload
|
|
||||||
|
|
||||||
- name: Publish win-x64
|
- name: Publish win-x64
|
||||||
if: ${{ github.event.inputs.win64 == 'true' }}
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish/win64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip win-x64
|
|
||||||
if: ${{ github.event.inputs.win64 == 'true' }}
|
|
||||||
run: |
|
|
||||||
$files = Get-ChildItem -Path publish/win64/* -Recurse -Exclude *.pdb
|
|
||||||
Compress-Archive -Path $files.FullName -DestinationPath upload/Semi.Avalonia.Demo.Desktop.win-x64.zip
|
|
||||||
|
|
||||||
- name: Enable Native AOT in .csproj
|
|
||||||
if: ${{ github.event.inputs.win64_aot == 'true' }}
|
|
||||||
run: |
|
|
||||||
sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
|
||||||
sed -i 's#<!--<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>-->#<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
|
||||||
|
|
||||||
- name: Publish win-x64 AOT
|
|
||||||
if: ${{ github.event.inputs.win64_aot == 'true' }}
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish/win64-aot
|
|
||||||
|
|
||||||
- name: Zip win-x64 AOT
|
|
||||||
if: ${{ github.event.inputs.win64_aot == 'true' }}
|
|
||||||
run: |
|
|
||||||
$files = Get-ChildItem -Path publish/win64-aot/* -Recurse -Exclude *.pdb
|
|
||||||
Compress-Archive -Path $files.FullName -DestinationPath upload/Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT.zip
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: windows
|
name: Semi.Avalonia.Demo.Desktop.win-x64
|
||||||
path: upload
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
linux:
|
win-x64-aot:
|
||||||
if: ${{ github.event.inputs.platform == 'linux' || github.event.inputs.platform == 'all' }}
|
if: ${{inputs.win-x64-aot}}
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Enable Native AOT in .csproj
|
||||||
|
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
||||||
|
- name: Publish win-x64 AOT
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
linux-x64:
|
||||||
|
if: ${{inputs.linux-x64}}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Make upload directory
|
|
||||||
run: mkdir upload
|
|
||||||
|
|
||||||
- name: Publish linux-x64
|
- name: Publish linux-x64
|
||||||
if: ${{ github.event.inputs.linux64 == 'true' }}
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish/linux64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip linux-x64
|
|
||||||
if: ${{ github.event.inputs.linux64 == 'true' }}
|
|
||||||
run: zip -j -r upload/Semi.Avalonia.Demo.Desktop.linux-x64.zip publish/linux64 -x "*.pdb"
|
|
||||||
|
|
||||||
- name: Publish linux-x64 DRM
|
|
||||||
if: ${{ github.event.inputs.linux64_drm == 'true' }}
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish/drm --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip linux-x64 DRM
|
|
||||||
if: ${{ github.event.inputs.linux64_drm == 'true' }}
|
|
||||||
run: zip -j -r upload/Semi.Avalonia.Demo.Drm.linux-x64.zip publish/drm -x "*.pdb"
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: linux
|
name: Semi.Avalonia.Demo.Desktop.linux-x64
|
||||||
path: upload
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
android:
|
linux-x64-aot:
|
||||||
if: ${{ github.event.inputs.platform == 'android' || github.event.inputs.platform == 'all' }}
|
if: ${{inputs.linux-x64-aot}}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Enable Native AOT in .csproj
|
||||||
|
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
||||||
|
- name: Publish linux-x64 AOT
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Desktop.linux-x64.NativeAOT
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
drm-linux-x64:
|
||||||
|
if: ${{inputs.drm-linux-x64}}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Publish linux-x64 DRM
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Drm.linux-x64
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
drm-linux-x64-aot:
|
||||||
|
if: ${{inputs.drm-linux-x64-aot}}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Enable Native AOT in .csproj
|
||||||
|
run: sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj
|
||||||
|
- name: Publish linux-x64 AOT
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Drm.linux-x64.NativeAOT
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
osx-arm64:
|
||||||
|
if: ${{inputs.osx-arm64}}
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Publish osx-arm64
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r osx-arm64 -c Release -o publish --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Desktop.osx-arm64
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
osx-arm64-aot:
|
||||||
|
if: ${{inputs.osx-arm64-aot}}
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4.2.2
|
||||||
|
- name: Enable Native AOT in .csproj
|
||||||
|
run: sed -i '' 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
||||||
|
- name: Publish osx-arm64 AOT
|
||||||
|
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r osx-arm64 -c Release -o publish
|
||||||
|
- name: Upload a Build Artifact
|
||||||
|
uses: actions/upload-artifact@v4.6.2
|
||||||
|
with:
|
||||||
|
name: Semi.Avalonia.Demo.Desktop.osx-arm64.NativeAOT
|
||||||
|
path: |
|
||||||
|
publish
|
||||||
|
!publish/*.pdb
|
||||||
|
|
||||||
|
android-arm64:
|
||||||
|
if: ${{inputs.android-arm64 }}
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4.1.1
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: CD Android
|
- name: CD Android
|
||||||
run: cd demo/Semi.Avalonia.Demo.Android
|
run: cd demo/Semi.Avalonia.Demo.Android
|
||||||
|
|
||||||
- name: Restore Dependencies
|
- name: Restore Dependencies
|
||||||
run: dotnet restore
|
run: dotnet restore
|
||||||
|
|
||||||
- name: Publish Android
|
- name: Publish Android
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o publish -p:RuntimeIdentifier=android-arm64
|
run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o publish /p:RuntimeIdentifier=android-arm64
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v4.3.1
|
uses: actions/upload-artifact@v4.6.2
|
||||||
with:
|
with:
|
||||||
name: android
|
name: android-arm64
|
||||||
path: publish/*Signed.apk
|
path: publish/*Signed.apk
|
||||||
|
|||||||
177
.github/workflows/release-tag.yml
vendored
177
.github/workflows/release-tag.yml
vendored
@@ -1,146 +1,73 @@
|
|||||||
name: Release Tag
|
name: Release Tag
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- "v[0-9]+.[0-9]+.[0-9]+.[0-9]+"
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
Upload_to_NuGet:
|
||||||
|
description: 'Upload to NuGet'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
Semi_Avalonia:
|
||||||
|
description: 'Pack Semi.Avalonia'
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
Semi_Avalonia_ColorPicker:
|
||||||
|
description: 'Pack Semi.Avalonia.ColorPicker'
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
Semi_Avalonia_DataGrid:
|
||||||
|
description: 'Pack Semi.Avalonia.DataGrid'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
Semi_Avalonia_TreeDataGrid:
|
||||||
|
description: 'Pack Semi.Avalonia.TreeDataGrid'
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pack:
|
nuget:
|
||||||
runs-on: ubuntu-latest
|
uses: ./.github/workflows/pack.yml
|
||||||
|
with:
|
||||||
|
Upload_to_NuGet: ${{ inputs.Upload_to_NuGet }}
|
||||||
|
Semi_Avalonia: ${{ inputs.Semi_Avalonia }}
|
||||||
|
Semi_Avalonia_ColorPicker: ${{ inputs.Semi_Avalonia_ColorPicker }}
|
||||||
|
Semi_Avalonia_DataGrid: ${{ inputs.Semi_Avalonia_DataGrid }}
|
||||||
|
Semi_Avalonia_TreeDataGrid: ${{ inputs.Semi_Avalonia_TreeDataGrid }}
|
||||||
|
|
||||||
steps:
|
publish:
|
||||||
- name: Checkout
|
uses: ./.github/workflows/publish.yml
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia
|
|
||||||
run: dotnet pack src/Semi.Avalonia -o nugets
|
|
||||||
|
|
||||||
- name: Pack Semi.Avalonia.ColorPicker
|
|
||||||
run: dotnet pack src/Semi.Avalonia.ColorPicker -o nugets
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: nugets
|
|
||||||
path: nugets
|
|
||||||
|
|
||||||
publish-windows:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Make upload directory
|
|
||||||
run: mkdir upload
|
|
||||||
|
|
||||||
- name: Publish win-x64
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish/win64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip win-x64
|
|
||||||
run: |
|
|
||||||
$files = Get-ChildItem -Path publish/win64/* -Recurse -Exclude *.pdb
|
|
||||||
Compress-Archive -Path $files.FullName -DestinationPath upload/Semi.Avalonia.Demo.Desktop.win-x64.zip
|
|
||||||
|
|
||||||
- name: Enable Native AOT in .csproj
|
|
||||||
run: |
|
|
||||||
sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
|
||||||
sed -i 's#<!--<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>-->#<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj
|
|
||||||
|
|
||||||
- name: Publish win-x64 AOT
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o publish/win64-aot
|
|
||||||
|
|
||||||
- name: Zip win-x64 AOT
|
|
||||||
run: |
|
|
||||||
$files = Get-ChildItem -Path publish/win64-aot/* -Recurse -Exclude *.pdb
|
|
||||||
Compress-Archive -Path $files.FullName -DestinationPath upload/Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT.zip
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: windows
|
|
||||||
path: upload
|
|
||||||
|
|
||||||
publish-linux:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Make upload directory
|
|
||||||
run: mkdir upload
|
|
||||||
|
|
||||||
- name: Publish linux-x64
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r linux-x64 -c Release -o publish/linux64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip linux-x64
|
|
||||||
run: zip -j -r upload/Semi.Avalonia.Demo.Desktop.linux-x64.zip publish/linux64 -x "*.pdb"
|
|
||||||
|
|
||||||
- name: Publish linux-x64 DRM
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release -o publish/drm --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
|
|
||||||
|
|
||||||
- name: Zip linux-x64 DRM
|
|
||||||
run: zip -j -r upload/Semi.Avalonia.Demo.Drm.linux-x64.zip publish/drm -x "*.pdb"
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: linux
|
|
||||||
path: upload
|
|
||||||
|
|
||||||
publish-android:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: CD Android
|
|
||||||
run: cd demo/Semi.Avalonia.Demo.Android
|
|
||||||
|
|
||||||
- name: Restore Dependencies
|
|
||||||
run: dotnet restore
|
|
||||||
|
|
||||||
- name: Publish Android
|
|
||||||
run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o publish -p:RuntimeIdentifier=android-arm64
|
|
||||||
|
|
||||||
- name: Upload a Build Artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: android
|
|
||||||
path: publish/*Signed.apk
|
|
||||||
|
|
||||||
draft-release:
|
draft-release:
|
||||||
needs: [ pack, publish-windows, publish-linux, publish-android ]
|
needs: [ nuget,publish ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Download nugets Artifacts
|
- uses: actions/download-artifact@v4.3.0
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: nugets
|
|
||||||
|
|
||||||
- name: Download windows Artifacts
|
- name: Display structure of downloaded files
|
||||||
uses: actions/download-artifact@v4
|
run: ls -R
|
||||||
with:
|
|
||||||
name: windows
|
|
||||||
|
|
||||||
- name: Download linux Artifacts
|
- name: Zip artifacts
|
||||||
uses: actions/download-artifact@v4
|
run: |
|
||||||
with:
|
zip -rj Semi.Avalonia.Demo.Desktop.win-x64.zip Semi.Avalonia.Demo.Desktop.win-x64
|
||||||
name: linux
|
zip -rj Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT.zip Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT
|
||||||
|
zip -rj Semi.Avalonia.Demo.Desktop.linux-x64.zip Semi.Avalonia.Demo.Desktop.linux-x64
|
||||||
|
zip -rj Semi.Avalonia.Demo.Desktop.linux-x64.NativeAOT.zip Semi.Avalonia.Demo.Desktop.linux-x64.NativeAOT
|
||||||
|
zip -rj Semi.Avalonia.Demo.Drm.linux-x64.zip Semi.Avalonia.Demo.Drm.linux-x64
|
||||||
|
zip -rj Semi.Avalonia.Demo.Drm.linux-x64.NativeAOT.zip Semi.Avalonia.Demo.Drm.linux-x64.NativeAOT
|
||||||
|
zip -rj Semi.Avalonia.Demo.Desktop.osx-arm64.zip Semi.Avalonia.Demo.Desktop.osx-arm64
|
||||||
|
cd Semi.Avalonia.Demo.Desktop.osx-arm64.NativeAOT
|
||||||
|
zip -r ../Semi.Avalonia.Demo.Desktop.osx-arm64.NativeAOT.zip .
|
||||||
|
|
||||||
- name: Download android Artifacts
|
- name: Display structure of zipped files
|
||||||
uses: actions/download-artifact@v4
|
run: ls -R
|
||||||
with:
|
|
||||||
name: android
|
|
||||||
|
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2.3.2
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
|
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
|
||||||
with:
|
with:
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
draft: true
|
draft: true
|
||||||
files: |
|
files: |
|
||||||
*.nupkg
|
nugets/*.nupkg
|
||||||
*.zip
|
android-arm64/*.apk
|
||||||
*.apk
|
*.zip
|
||||||
12
README.md
12
README.md
@@ -38,12 +38,15 @@ Include Semi Design Styles in application:
|
|||||||
|
|
||||||
That's all.
|
That's all.
|
||||||
|
|
||||||
ColorPicker, DataGrid and TreeDataGrid are distributed in separated packages. Please install if you need.
|
ColorPicker, DataGrid, TreeDataGrid, Dock, Tabalonia and AvaloniaEdit are distributed in separated packages. Please install if you need.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet add package Semi.Avalonia.ColorPicker
|
dotnet add package Semi.Avalonia.ColorPicker
|
||||||
dotnet add package Semi.Avalonia.DataGrid
|
dotnet add package Semi.Avalonia.DataGrid
|
||||||
dotnet add package Semi.Avalonia.TreeDataGrid
|
dotnet add package Semi.Avalonia.TreeDataGrid
|
||||||
|
dotnet add package Semi.Avalonia.Dock
|
||||||
|
dotnet add package Semi.Avalonia.Tabalonia
|
||||||
|
dotnet add package Semi.Avalonia.AvaloniaEdit
|
||||||
```
|
```
|
||||||
|
|
||||||
```xaml
|
```xaml
|
||||||
@@ -51,9 +54,14 @@ dotnet add package Semi.Avalonia.TreeDataGrid
|
|||||||
<semi:ColorPickerSemiTheme />
|
<semi:ColorPickerSemiTheme />
|
||||||
<semi:DataGridSemiTheme />
|
<semi:DataGridSemiTheme />
|
||||||
<semi:TreeDataGridSemiTheme />
|
<semi:TreeDataGridSemiTheme />
|
||||||
|
<semi:DockSemiTheme />
|
||||||
|
<semi:TabaloniaSemiTheme />
|
||||||
|
<semi:AvaloniaEditSemiTheme />
|
||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Notice: Dock, Tabalonia and AvaloniaEdit are delivered via nuget for free, but not open source. Please read the license and agree to continue use these packages. If you need source code, please contact us via email: [contact@irihi.tech](contact@irihi.tech)
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
You can always download demo executable to play around with Semi Avalonia Themes.
|
You can always download demo executable to play around with Semi Avalonia Themes.
|
||||||
@@ -63,7 +71,7 @@ You can always download demo executable to play around with Semi Avalonia Themes
|
|||||||
|
|
||||||
We offer limited free community support for Semi Avalonia and Ursa. If you have any question or suggestion, feel free to raise issues and discussions via GitHub, and you are welcomed to join our group via FeiShu(Lark)
|
We offer limited free community support for Semi Avalonia and Ursa. If you have any question or suggestion, feel free to raise issues and discussions via GitHub, and you are welcomed to join our group via FeiShu(Lark)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Version compatibility
|
## Version compatibility
|
||||||
|
|
||||||
|
|||||||
10
README_CN.md
10
README_CN.md
@@ -38,12 +38,15 @@ dotnet add package Semi.Avalonia
|
|||||||
|
|
||||||
这样就可以了。
|
这样就可以了。
|
||||||
|
|
||||||
ColorPicker、DataGrid 和 TreeDataGrid 的样式单独分发,如果需要请安装并引用。
|
ColorPicker、DataGrid、TreeDataGrid、Dock、Tabalonia 和 AvaloniaEdit 的样式单独分发,如果需要请安装并引用。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet add package Semi.Avalonia.ColorPicker
|
dotnet add package Semi.Avalonia.ColorPicker
|
||||||
dotnet add package Semi.Avalonia.DataGrid
|
dotnet add package Semi.Avalonia.DataGrid
|
||||||
dotnet add package Semi.Avalonia.TreeDataGrid
|
dotnet add package Semi.Avalonia.TreeDataGrid
|
||||||
|
dotnet add package Semi.Avalonia.Dock
|
||||||
|
dotnet add package Semi.Avalonia.Tabalonia
|
||||||
|
dotnet add package Semi.Avalonia.AvaloniaEdit
|
||||||
```
|
```
|
||||||
|
|
||||||
```xaml
|
```xaml
|
||||||
@@ -51,9 +54,14 @@ dotnet add package Semi.Avalonia.TreeDataGrid
|
|||||||
<semi:ColorPickerSemiTheme />
|
<semi:ColorPickerSemiTheme />
|
||||||
<semi:DataGridSemiTheme />
|
<semi:DataGridSemiTheme />
|
||||||
<semi:TreeDataGridSemiTheme />
|
<semi:TreeDataGridSemiTheme />
|
||||||
|
<semi:DockSemiTheme />
|
||||||
|
<semi:TabaloniaSemiTheme />
|
||||||
|
<semi:AvaloniaEditSemiTheme />
|
||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
注意:Dock、Tabalonia 和 AvaloniaEdit 是通过 NuGet 免费分发的,但不是开源的。请阅读许可协议并同意后继续使用这些包。如果您需要源代码,请通过电子邮件联系我们:[contact@irihi.tech](contact@irihi.tech)
|
||||||
|
|
||||||
## 示例
|
## 示例
|
||||||
|
|
||||||
您可以从 Semi Avalonia 的 release 页下载并试用 Semi Avalonia 的展示应用。
|
您可以从 Semi Avalonia 的 release 页下载并试用 Semi Avalonia 的展示应用。
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<AvaloniaVersion>11.3.0</AvaloniaVersion>
|
<AvaloniaVersion>11.3.7</AvaloniaVersion>
|
||||||
<DataGridVersion>11.3.0</DataGridVersion>
|
<DataGridVersion>11.3.7</DataGridVersion>
|
||||||
<CommunityToolkitVersion>8.4.0</CommunityToolkitVersion>
|
<CommunityToolkitVersion>8.4.0</CommunityToolkitVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 717 B |
@@ -14,9 +14,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Icon.png">
|
<AndroidResource Include="Icon.png" Link="Resources\drawable\Icon.png"/>
|
||||||
<Link>Resources\drawable\Icon.png</Link>
|
|
||||||
</AndroidResource>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
|
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
|
||||||
|
<ApplicationIcon>..\Semi.Avalonia.Demo\Assets\irihi.ico</ApplicationIcon>
|
||||||
<!-- Uncomment below to enable Native AOT compilation-->
|
<!-- Uncomment below to enable Native AOT compilation-->
|
||||||
<!--<PublishAot>true</PublishAot>-->
|
<!--<PublishAot>true</PublishAot>-->
|
||||||
<!--<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>-->
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ private static void SilenceConsole()
|
|||||||
6. Publish the app to Linux
|
6. Publish the app to Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet publish demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj -c Release -r linux-x64 --sc -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
|
dotnet publish demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj -c Release -r linux-x64 --sc /p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
```
|
```
|
||||||
|
|
||||||
Add the following code to the csproj file for AOT publishing
|
Add the following code to the csproj file for AOT publishing
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ private static void SilenceConsole()
|
|||||||
6. 发布程序到Linux
|
6. 发布程序到Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet publish demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj -c Release -r linux-x64 --sc -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
|
dotnet publish demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj -c Release -r linux-x64 --sc /p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
|
||||||
```
|
```
|
||||||
|
|
||||||
AOT发布需要在csproj文件中添加以下代码
|
AOT发布需要在csproj文件中添加以下代码
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
|
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
|
||||||
|
<ApplicationIcon>..\Semi.Avalonia.Demo\Assets\irihi.ico</ApplicationIcon>
|
||||||
<!-- Uncomment below to enable Native AOT compilation-->
|
<!-- Uncomment below to enable Native AOT compilation-->
|
||||||
<!--<PublishAot>true</PublishAot>-->
|
<!--<PublishAot>true</PublishAot>-->
|
||||||
<!--<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>-->
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<Application
|
<Application
|
||||||
|
Name="Semi Avalonia Demo"
|
||||||
x:Class="Semi.Avalonia.Demo.App"
|
x:Class="Semi.Avalonia.Demo.App"
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="viewModels:ApplicationViewModel"
|
|
||||||
xmlns:semi="https://irihi.tech/semi"
|
xmlns:semi="https://irihi.tech/semi"
|
||||||
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels">
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
|
x:DataType="vm:ApplicationViewModel">
|
||||||
<Application.Styles>
|
<Application.Styles>
|
||||||
<semi:SemiTheme Locale="zh-CN" />
|
<semi:SemiTheme Locale="zh-CN" />
|
||||||
<semi:SemiPopupAnimations />
|
<semi:SemiPopupAnimations />
|
||||||
@@ -20,12 +20,30 @@
|
|||||||
</ResourceDictionary.MergedDictionaries>
|
</ResourceDictionary.MergedDictionaries>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</Application.Resources>
|
</Application.Resources>
|
||||||
|
<NativeMenu.Menu>
|
||||||
|
<NativeMenu>
|
||||||
|
<NativeMenuItem
|
||||||
|
Header="About Us"
|
||||||
|
Command="{Binding JumpToCommand}"
|
||||||
|
CommandParameter="{Binding $self.Header}" />
|
||||||
|
</NativeMenu>
|
||||||
|
</NativeMenu.Menu>
|
||||||
<TrayIcon.Icons>
|
<TrayIcon.Icons>
|
||||||
<TrayIcons>
|
<TrayIcons>
|
||||||
<TrayIcon Icon="/Assets/irihi.ico" MacOSProperties.IsTemplateIcon="true" ToolTipText="Semi Avalonia Demo">
|
<TrayIcon
|
||||||
|
Icon="{OnPlatform Default=/Assets/irihi.ico, macOS=/Assets/irihi2.ico}"
|
||||||
|
MacOSProperties.IsTemplateIcon="true"
|
||||||
|
Command="{Binding ActivateCommand}"
|
||||||
|
ToolTipText="Semi Avalonia Demo">
|
||||||
<TrayIcon.Menu>
|
<TrayIcon.Menu>
|
||||||
<NativeMenu>
|
<NativeMenu>
|
||||||
<NativeMenuItem Header="Exit" Command="{Binding ExitCommand}" />
|
<NativeMenuItem
|
||||||
|
Header="About Us"
|
||||||
|
Command="{Binding JumpToCommand}"
|
||||||
|
CommandParameter="{Binding $self.Header}" />
|
||||||
|
<NativeMenuItem
|
||||||
|
Header="Exit"
|
||||||
|
Command="{Binding ExitCommand}" />
|
||||||
</NativeMenu>
|
</NativeMenu>
|
||||||
</TrayIcon.Menu>
|
</TrayIcon.Menu>
|
||||||
</TrayIcon>
|
</TrayIcon>
|
||||||
|
|||||||
BIN
demo/Semi.Avalonia.Demo/Assets/irihi2.ico
Normal file
BIN
demo/Semi.Avalonia.Demo/Assets/irihi2.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 948 B |
@@ -8,7 +8,6 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
x:DataType="vm:AboutUsViewModel"
|
x:DataType="vm:AboutUsViewModel"
|
||||||
x:CompileBindings="True"
|
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="False"
|
|
||||||
x:DataType="vm:AutoCompleteBoxDemoViewModel"
|
x:DataType="vm:AutoCompleteBoxDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
@@ -30,40 +29,40 @@
|
|||||||
|
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Watermark="Please select a State"
|
Watermark="Please select a State"
|
||||||
ValueMemberBinding="{Binding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Large"
|
Classes="Large"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Small"
|
Classes="Small"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
Watermark="Disabled"
|
Watermark="Disabled"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
InnerLeftContent="https://"
|
InnerLeftContent="https://"
|
||||||
InnerRightContent=".com"
|
InnerRightContent=".com"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Large"
|
Classes="Large"
|
||||||
Watermark="Large"
|
Watermark="Large"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Watermark="Default"
|
Watermark="Default"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Small"
|
Classes="Small"
|
||||||
Watermark="Small"
|
Watermark="Small"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
@@ -71,17 +70,17 @@
|
|||||||
Width="100"
|
Width="100"
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
Watermark="Disabled"
|
Watermark="Disabled"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
Watermark="Bordered"
|
Watermark="Bordered"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
<AutoCompleteBox
|
<AutoCompleteBox
|
||||||
Width="100"
|
Width="100"
|
||||||
Classes="Bordered"
|
Classes="Bordered"
|
||||||
IsEnabled="False"
|
IsEnabled="False"
|
||||||
ValueMemberBinding="{ReflectionBinding Name}" />
|
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -8,6 +8,10 @@
|
|||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<StackPanel HorizontalAlignment="Left" Spacing="20">
|
<StackPanel HorizontalAlignment="Left" Spacing="20">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<ToggleSwitch Name="showSpinCheck" IsChecked="True" Content="Show Button Spinner" />
|
||||||
|
<ToggleSwitch Name="allowSpinCheck" IsChecked="True" Content="Allow Spin" />
|
||||||
|
</StackPanel>
|
||||||
<ButtonSpinner
|
<ButtonSpinner
|
||||||
Height="30"
|
Height="30"
|
||||||
AllowSpin="{Binding #allowSpinCheck.IsChecked}"
|
AllowSpin="{Binding #allowSpinCheck.IsChecked}"
|
||||||
|
|||||||
@@ -7,46 +7,51 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
d:DesignHeight="800"
|
d:DesignHeight="800"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
x:DataType="vm:ComboBoxDemoViewModel">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:ComboBoxDemoViewModel />
|
<vm:ComboBoxDemoViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
<StackPanel Spacing="20">
|
<ScrollViewer>
|
||||||
<StackPanel.Styles>
|
<StackPanel Spacing="20">
|
||||||
<Style Selector="ComboBox">
|
<StackPanel.Styles>
|
||||||
<Setter Property="Width" Value="300" />
|
<Style Selector="ComboBox">
|
||||||
<Setter Property="ItemsSource" Value="{Binding Items}" />
|
<Setter Property="Width" Value="300" />
|
||||||
</Style>
|
<Setter Property="ItemsSource" Value="{Binding Items}" />
|
||||||
</StackPanel.Styles>
|
</Style>
|
||||||
|
</StackPanel.Styles>
|
||||||
|
|
||||||
<ComboBox />
|
<ComboBox />
|
||||||
<ComboBox Classes="ClearButton" />
|
<ComboBox Classes="ClearButton" />
|
||||||
<ComboBox PlaceholderText="Please Select" />
|
<ComboBox PlaceholderText="Please Select" />
|
||||||
<ComboBox IsEnabled="False" />
|
<ComboBox IsEnabled="False" />
|
||||||
<ComboBox Classes="Large" IsEnabled="False" />
|
<ComboBox Classes="Large" IsEnabled="False" />
|
||||||
<ComboBox Classes="Small" />
|
<ComboBox Classes="Small" />
|
||||||
<ComboBox Classes="Bordered" />
|
<ComboBox Classes="Bordered" />
|
||||||
<ComboBox Classes="Bordered" IsEnabled="False" />
|
<ComboBox Classes="Bordered" IsEnabled="False" />
|
||||||
<ComboBox>
|
<ComboBox>
|
||||||
<ComboBox.SelectionBoxItemTemplate>
|
<ComboBox.SelectionBoxItemTemplate>
|
||||||
<DataTemplate DataType="x:String">
|
<DataTemplate DataType="x:String">
|
||||||
<ContentControl BorderThickness="1"
|
<ContentControl BorderThickness="1"
|
||||||
BorderBrush="Gold"
|
BorderBrush="Gold"
|
||||||
Content="{Binding}" />
|
Content="{Binding}" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ComboBox.SelectionBoxItemTemplate>
|
</ComboBox.SelectionBoxItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<ComboBox Width="100" Classes="Large" PlaceholderText="Large" />
|
<ComboBox Width="100" Classes="Large" PlaceholderText="Large" />
|
||||||
<ComboBox Width="100" PlaceholderText="Default" />
|
<ComboBox Width="100" PlaceholderText="Default" />
|
||||||
<ComboBox Width="100" Classes="Small" PlaceholderText="Small" />
|
<ComboBox Width="100" Classes="Small" PlaceholderText="Small" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<ComboBox Width="100" IsEnabled="False" PlaceholderText="Disabled" />
|
||||||
|
<ComboBox Width="100" Classes="Bordered" PlaceholderText="Bordered" />
|
||||||
|
<ComboBox Width="100" Classes="Bordered" IsEnabled="False" />
|
||||||
|
</StackPanel>
|
||||||
|
<ToggleSwitch Name="toggle" IsChecked="True" Content="IsEditable" />
|
||||||
|
<ComboBox IsEditable="{Binding #toggle.IsChecked}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
<StackPanel Orientation="Horizontal">
|
|
||||||
<ComboBox Width="100" IsEnabled="False" PlaceholderText="Disabled" />
|
|
||||||
<ComboBox Width="100" Classes="Bordered" PlaceholderText="Bordered" />
|
|
||||||
<ComboBox Width="100" Classes="Bordered" IsEnabled="False" />
|
|
||||||
</StackPanel>
|
|
||||||
</StackPanel>
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels;assembly=Semi.Avalonia.Demo"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels;assembly=Semi.Avalonia.Demo"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:DataGridDemoViewModel"
|
x:DataType="vm:DataGridDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<TabControl>
|
<TabControl>
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="1450"
|
mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="1450"
|
||||||
x:DataType="vm:HighContrastDemoViewModel"
|
x:DataType="vm:HighContrastDemoViewModel"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:Class="Semi.Avalonia.Demo.Pages.HighContrastDemo">
|
x:Class="Semi.Avalonia.Demo.Pages.HighContrastDemo">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:HighContrastDemoViewModel />
|
<vm:HighContrastDemoViewModel />
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ public partial class NotificationDemo : UserControl
|
|||||||
if (sender is RadioButton b && b.Content is string s)
|
if (sender is RadioButton b && b.Content is string s)
|
||||||
{
|
{
|
||||||
Enum.TryParse<NotificationPosition>(s, out var t);
|
Enum.TryParse<NotificationPosition>(s, out var t);
|
||||||
_manager.Position = t;
|
if (_manager is not null)
|
||||||
|
_manager.Position = t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -348,7 +348,7 @@
|
|||||||
Classes="H5"
|
Classes="H5"
|
||||||
Text="Start to install"
|
Text="Start to install"
|
||||||
Theme="{DynamicResource TitleTextBlock}" />
|
Theme="{DynamicResource TitleTextBlock}" />
|
||||||
<TabControl Padding="8">
|
<TabControl Theme="{StaticResource LineTabControl}">
|
||||||
<TabItem Header="Main">
|
<TabItem Header="Main">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock Text="Install via nuget: " />
|
<TextBlock Text="Install via nuget: " />
|
||||||
@@ -409,6 +409,51 @@
|
|||||||
</Border>
|
</Border>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
<TabItem Header="Dock">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Install via nuget: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock FontFamily="Consolas" Text="{Binding $parent[local:Overview].DockInstall}" />
|
||||||
|
</Border>
|
||||||
|
<TextBlock Text="Reference styles: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock
|
||||||
|
FontFamily="Consolas"
|
||||||
|
Text="{Binding $parent[local:Overview].DockStyle}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</TabItem>
|
||||||
|
<TabItem Header="Tabalonia">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Install via nuget: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock FontFamily="Consolas" Text="{Binding $parent[local:Overview].TabaloniaInstall}" />
|
||||||
|
</Border>
|
||||||
|
<TextBlock Text="Reference styles: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock
|
||||||
|
FontFamily="Consolas"
|
||||||
|
Text="{Binding $parent[local:Overview].TabaloniaStyle}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</TabItem>
|
||||||
|
<TabItem Header="AvaloniaEdit">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Install via nuget: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock FontFamily="Consolas" Text="{Binding $parent[local:Overview].AvaloniaEditInstall}" />
|
||||||
|
</Border>
|
||||||
|
<TextBlock Text="Reference styles: " />
|
||||||
|
<Border Margin="0,16" Classes="CodeBlock">
|
||||||
|
<SelectableTextBlock
|
||||||
|
FontFamily="Consolas"
|
||||||
|
Text="{Binding $parent[local:Overview].AvaloniaEditStyle}"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</TabItem>
|
||||||
</TabControl>
|
</TabControl>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public partial class Overview : UserControl
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public string MainInstall { get; set; } = "dotnet add package Semi.Avalonia --version 11.2.1.8";
|
public string MainInstall { get; set; } = "dotnet add package Semi.Avalonia";
|
||||||
|
|
||||||
public string MainStyle { get; set; } =
|
public string MainStyle { get; set; } =
|
||||||
"""
|
"""
|
||||||
@@ -18,7 +18,7 @@ public partial class Overview : UserControl
|
|||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
""";
|
""";
|
||||||
|
|
||||||
public string ColorPickerInstall { get; set; } = "dotnet add package Semi.Avalonia.ColorPicker --version 11.2.1.8";
|
public string ColorPickerInstall { get; set; } = "dotnet add package Semi.Avalonia.ColorPicker";
|
||||||
|
|
||||||
public string ColorPickerStyle { get; set; } =
|
public string ColorPickerStyle { get; set; } =
|
||||||
"""
|
"""
|
||||||
@@ -27,7 +27,7 @@ public partial class Overview : UserControl
|
|||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
""";
|
""";
|
||||||
|
|
||||||
public string DataGridInstall { get; set; } = "dotnet add package Semi.Avalonia.DataGrid --version 11.2.1.8";
|
public string DataGridInstall { get; set; } = "dotnet add package Semi.Avalonia.DataGrid";
|
||||||
|
|
||||||
public string DataGridStyle { get; set; } =
|
public string DataGridStyle { get; set; } =
|
||||||
"""
|
"""
|
||||||
@@ -36,7 +36,7 @@ public partial class Overview : UserControl
|
|||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
""";
|
""";
|
||||||
|
|
||||||
public string TreeDataGridInstall { get; set; } = "dotnet add package Semi.Avalonia.TreeDataGrid --version 11.0.10.4";
|
public string TreeDataGridInstall { get; set; } = "dotnet add package Semi.Avalonia.TreeDataGrid";
|
||||||
|
|
||||||
public string TreeDataGridStyle { get; set; } =
|
public string TreeDataGridStyle { get; set; } =
|
||||||
"""
|
"""
|
||||||
@@ -44,4 +44,31 @@ public partial class Overview : UserControl
|
|||||||
<semi:TreeDataGridSemiTheme />
|
<semi:TreeDataGridSemiTheme />
|
||||||
</Application.Styles>
|
</Application.Styles>
|
||||||
""";
|
""";
|
||||||
|
|
||||||
|
public string DockInstall { get; set; } = "dotnet add package Semi.Avalonia.Dock";
|
||||||
|
|
||||||
|
public string DockStyle { get; set; } =
|
||||||
|
"""
|
||||||
|
<Application.Styles>
|
||||||
|
<semi:DockSemiTheme />
|
||||||
|
</Application.Styles>
|
||||||
|
""";
|
||||||
|
|
||||||
|
public string TabaloniaInstall { get; set; } = "dotnet add package Semi.Avalonia.Tabalonia";
|
||||||
|
|
||||||
|
public string TabaloniaStyle { get; set; } =
|
||||||
|
"""
|
||||||
|
<Application.Styles>
|
||||||
|
<semi:TabaloniaSemiTheme />
|
||||||
|
</Application.Styles>
|
||||||
|
""";
|
||||||
|
|
||||||
|
public string AvaloniaEditInstall { get; set; } = "dotnet add package Semi.Avalonia.AvaloniaEdit";
|
||||||
|
|
||||||
|
public string AvaloniaEditStyle { get; set; } =
|
||||||
|
"""
|
||||||
|
<Application.Styles>
|
||||||
|
<semi:AvaloniaEditSemiTheme />
|
||||||
|
</Application.Styles>
|
||||||
|
""";
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,6 @@
|
|||||||
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="viewModels:PaletteDemoViewModel"
|
x:DataType="viewModels:PaletteDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:DataType="vm:RefreshContainerDemoViewModel"
|
x:DataType="vm:RefreshContainerDemoViewModel"
|
||||||
x:CompileBindings="True"
|
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
|
<DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
|
||||||
<Label DockPanel.Dock="Top">A control that supports pull to refresh</Label>
|
<Label DockPanel.Dock="Top">A control that supports pull to refresh</Label>
|
||||||
|
|||||||
@@ -7,276 +7,187 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
d:DesignHeight="1000"
|
d:DesignHeight="1000"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
|
x:DataType="vm:SplitViewDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:SplitViewDemoViewModel />
|
<vm:SplitViewDemoViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
<Border>
|
<Border>
|
||||||
<Grid ColumnDefinitions="*,400">
|
<Grid ColumnDefinitions="*,400">
|
||||||
<Border Grid.Column="1" VerticalAlignment="Top" Margin="10 0 0 0">
|
<Border
|
||||||
<Grid RowDefinitions="*, *, *, *, *, *" ColumnDefinitions="Auto, *">
|
Grid.Column="1"
|
||||||
|
Margin="10,0,0,0"
|
||||||
|
VerticalAlignment="Top">
|
||||||
|
<Grid ColumnDefinitions="Auto, *" RowDefinitions="*, *, *, *, *, *">
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="0" Grid.Column="0"
|
Grid.Row="0"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="IsPaneOpen" />
|
Content="IsPaneOpen" />
|
||||||
<ToggleSwitch
|
<ToggleSwitch
|
||||||
Grid.Row="0" Grid.Column="1"
|
Name="PaneOpenButton"
|
||||||
Name="PaneOpenButton" />
|
Grid.Row="0"
|
||||||
|
Grid.Column="1" />
|
||||||
|
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="1" Grid.Column="0"
|
Grid.Row="1"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="UseLightDismissOverlayMode" />
|
Content="UseLightDismissOverlayMode" />
|
||||||
<ToggleSwitch
|
<ToggleSwitch
|
||||||
Grid.Row="1" Grid.Column="1"
|
Name="UseLightDismissOverlayModeButton"
|
||||||
Name="UseLightDismissOverlayModeButton" />
|
Grid.Row="1"
|
||||||
|
Grid.Column="1" />
|
||||||
|
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="2" Grid.Column="0"
|
Grid.Row="2"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Placement" />
|
Content="Placement" />
|
||||||
<ToggleSwitch
|
<ComboBox
|
||||||
Grid.Row="2" Grid.Column="1"
|
Grid.Row="2"
|
||||||
Name="PanePlacementButton"
|
Grid.Column="1"
|
||||||
OffContent="Left"
|
Name="PanelPlacementSelector"
|
||||||
OnContent="Right" />
|
HorizontalAlignment="Stretch"
|
||||||
|
ItemsSource="{x:Static vm:SplitViewDemoViewModel.Placements}"
|
||||||
|
SelectedItem="{x:Static SplitViewPanePlacement.Left}"
|
||||||
|
/>
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="3" Grid.Column="0"
|
Grid.Row="3"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="DisplayMode" />
|
Content="DisplayMode" />
|
||||||
<ComboBox
|
<ComboBox
|
||||||
Grid.Row="3" Grid.Column="1"
|
|
||||||
Name="DisplayModeSelector"
|
Name="DisplayModeSelector"
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="1"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
ItemsSource="{x:Static vm:SplitViewDemoViewModel.DisplayModes}"
|
ItemsSource="{x:Static vm:SplitViewDemoViewModel.DisplayModes}"
|
||||||
SelectedItem="{x:Static SplitViewDisplayMode.CompactInline}" />
|
SelectedItem="{x:Static SplitViewDisplayMode.CompactInline}" />
|
||||||
|
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="4" Grid.Column="0"
|
Grid.Row="4"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="{Binding #CompactPaneLengthSlider.Value, StringFormat='{}CompactPaneLength: {0}'}" />
|
Content="{Binding #CompactPaneLengthSlider.Value, StringFormat='{}CompactPaneLength: {0}'}" />
|
||||||
<Slider
|
<Slider
|
||||||
Grid.Row="4" Grid.Column="1"
|
|
||||||
Name="CompactPaneLengthSlider"
|
Name="CompactPaneLengthSlider"
|
||||||
|
Grid.Row="4"
|
||||||
|
Grid.Column="1"
|
||||||
|
IsSnapToTickEnabled="True"
|
||||||
Maximum="128"
|
Maximum="128"
|
||||||
Minimum="0"
|
Minimum="0"
|
||||||
TickFrequency="1"
|
TickFrequency="1"
|
||||||
IsSnapToTickEnabled="True"
|
|
||||||
Value="48" />
|
Value="48" />
|
||||||
|
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="5" Grid.Column="0"
|
Grid.Row="5"
|
||||||
|
Grid.Column="0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="{Binding #OpenPaneLengthSlider.Value,StringFormat='{}OpenPaneLength: {0}'}" />
|
Content="{Binding #OpenPaneLengthSlider.Value, StringFormat='{}OpenPaneLength: {0}'}" />
|
||||||
<Slider
|
<Slider
|
||||||
Grid.Row="5" Grid.Column="1"
|
|
||||||
Name="OpenPaneLengthSlider"
|
Name="OpenPaneLengthSlider"
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="1"
|
||||||
|
IsSnapToTickEnabled="True"
|
||||||
Maximum="500"
|
Maximum="500"
|
||||||
Minimum="128"
|
Minimum="128"
|
||||||
TickFrequency="1"
|
TickFrequency="1"
|
||||||
IsSnapToTickEnabled="True"
|
|
||||||
Value="256" />
|
Value="256" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
<TabControl Grid.Column="0">
|
<SplitView
|
||||||
<TabItem Header="Default">
|
Grid.Column="0"
|
||||||
<Border
|
Name="SplitView"
|
||||||
BorderBrush="{DynamicResource SemiGrey1}"
|
CompactPaneLength="{Binding #CompactPaneLengthSlider.Value}"
|
||||||
BorderThickness="1">
|
DisplayMode="{Binding #DisplayModeSelector.SelectedItem}"
|
||||||
<SplitView
|
IsPaneOpen="{Binding #PaneOpenButton.IsChecked, Mode=TwoWay}"
|
||||||
Name="SplitView"
|
OpenPaneLength="{Binding #OpenPaneLengthSlider.Value}"
|
||||||
IsPaneOpen="{Binding #PaneOpenButton.IsChecked,Mode=TwoWay}"
|
PanePlacement="{Binding #PanelPlacementSelector.SelectedItem}"
|
||||||
UseLightDismissOverlayMode="{Binding #UseLightDismissOverlayModeButton.IsChecked}"
|
UseLightDismissOverlayMode="{Binding #UseLightDismissOverlayModeButton.IsChecked}">
|
||||||
PanePlacement="{Binding #PanePlacementButton.IsChecked}"
|
<SplitView.Background>
|
||||||
DisplayMode="{Binding #DisplayModeSelector.SelectedItem}"
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||||
CompactPaneLength="{Binding #CompactPaneLengthSlider.Value}"
|
<GradientStop Offset="0" Color="#6b4c1b" />
|
||||||
OpenPaneLength="{Binding #OpenPaneLengthSlider.Value}">
|
<GradientStop Offset="1" Color="#291e10" />
|
||||||
<SplitView.Background>
|
</LinearGradientBrush>
|
||||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
</SplitView.Background>
|
||||||
<GradientStop Color="#6b4c1b" Offset="0" />
|
<SplitView.Pane>
|
||||||
<GradientStop Color="#291e10" Offset="1" />
|
<Grid RowDefinitions="Auto,*,Auto">
|
||||||
</LinearGradientBrush>
|
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="8 12">
|
||||||
</SplitView.Background>
|
<ToggleSwitch
|
||||||
<SplitView.Pane>
|
Content="{StaticResource SemiIconSidebar}"
|
||||||
<Grid RowDefinitions="Auto,*,Auto">
|
IsChecked="{Binding #SplitView.IsPaneOpen}"
|
||||||
<TextBlock
|
Theme="{DynamicResource IconBorderlessToggleSwitch}" />
|
||||||
Grid.Row="0"
|
<TextBlock
|
||||||
Name="PaneHeader"
|
Name="PaneHeader"
|
||||||
Margin="8,12"
|
VerticalAlignment="Center"
|
||||||
FontWeight="Bold"
|
Margin="8 0"
|
||||||
Text="Playlist" />
|
FontWeight="Bold"
|
||||||
<ListBox
|
Text="Playlist" />
|
||||||
Grid.Row="1"
|
</StackPanel>
|
||||||
ItemsSource="{Binding Songs}" />
|
|
||||||
<ToggleSwitch
|
<ListBox Grid.Row="1" ItemsSource="{Binding Songs}" />
|
||||||
Grid.Row="2"
|
|
||||||
Theme="{DynamicResource IconBorderlessToggleSwitch}"
|
</Grid>
|
||||||
Content="{StaticResource SemiIconSidebar}"
|
</SplitView.Pane>
|
||||||
HorizontalAlignment="Left"
|
|
||||||
IsChecked="{Binding #SplitView.IsPaneOpen}" />
|
|
||||||
</Grid>
|
|
||||||
</SplitView.Pane>
|
|
||||||
|
|
||||||
<Panel>
|
<Panel>
|
||||||
<Panel.Styles>
|
<Panel.Styles>
|
||||||
<Style Selector="Image#AlbumCover">
|
<Style Selector="Image#AlbumCover">
|
||||||
<Style.Animations>
|
<Style.Animations>
|
||||||
<Animation IterationCount="Infinite" Duration="0:0:40">
|
<Animation IterationCount="Infinite" Duration="0:0:40">
|
||||||
<KeyFrame Cue="0%">
|
<KeyFrame Cue="0%">
|
||||||
<Setter Property="RotateTransform.Angle" Value="0" />
|
<Setter Property="RotateTransform.Angle" Value="0" />
|
||||||
</KeyFrame>
|
</KeyFrame>
|
||||||
<KeyFrame Cue="100%">
|
<KeyFrame Cue="100%">
|
||||||
<Setter Property="RotateTransform.Angle" Value="360" />
|
<Setter Property="RotateTransform.Angle" Value="360" />
|
||||||
</KeyFrame>
|
</KeyFrame>
|
||||||
</Animation>
|
</Animation>
|
||||||
</Style.Animations>
|
</Style.Animations>
|
||||||
</Style>
|
</Style>
|
||||||
</Panel.Styles>
|
</Panel.Styles>
|
||||||
<Image
|
<Image
|
||||||
Source="/Assets/WORLD.png"
|
Name="AlbumCover"
|
||||||
Name="AlbumCover"
|
Width="200"
|
||||||
Width="200"
|
Height="200"
|
||||||
Height="200" />
|
Source="/Assets/WORLD.png" />
|
||||||
<Arc
|
<Arc
|
||||||
Width="290"
|
Width="290"
|
||||||
Height="290"
|
Height="290"
|
||||||
StartAngle="0"
|
StartAngle="0"
|
||||||
SweepAngle="360"
|
StrokeJoin="Round"
|
||||||
StrokeJoin="Round"
|
StrokeLineCap="Round"
|
||||||
StrokeLineCap="Round"
|
StrokeThickness="45"
|
||||||
StrokeThickness="45">
|
SweepAngle="360">
|
||||||
<Arc.Stroke>
|
<Arc.Stroke>
|
||||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,0%">
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,0%">
|
||||||
<GradientStop Color="#010101" Offset="0" />
|
<GradientStop Offset="0" Color="#010101" />
|
||||||
<GradientStop Color="#363636" Offset="0.5" />
|
<GradientStop Offset="0.5" Color="#363636" />
|
||||||
<GradientStop Color="#010101" Offset="1" />
|
<GradientStop Offset="1" Color="#010101" />
|
||||||
</LinearGradientBrush>
|
</LinearGradientBrush>
|
||||||
</Arc.Stroke>
|
</Arc.Stroke>
|
||||||
</Arc>
|
</Arc>
|
||||||
<Arc
|
<Arc
|
||||||
Width="294"
|
Width="294"
|
||||||
Height="294"
|
Height="294"
|
||||||
StartAngle="0"
|
StartAngle="0"
|
||||||
SweepAngle="360"
|
Stroke="Black"
|
||||||
StrokeJoin="Round"
|
StrokeJoin="Round"
|
||||||
StrokeLineCap="Round"
|
StrokeLineCap="Round"
|
||||||
StrokeThickness="4"
|
StrokeThickness="4"
|
||||||
Stroke="Black" />
|
SweepAngle="360" />
|
||||||
<Arc
|
<Arc
|
||||||
Width="310"
|
Width="310"
|
||||||
Height="310"
|
Height="310"
|
||||||
StartAngle="0"
|
Opacity="0.1"
|
||||||
SweepAngle="360"
|
StartAngle="0"
|
||||||
StrokeJoin="Round"
|
Stroke="#C6CACD"
|
||||||
StrokeLineCap="Round"
|
StrokeJoin="Round"
|
||||||
StrokeThickness="10"
|
StrokeLineCap="Round"
|
||||||
Stroke="#C6CACD"
|
StrokeThickness="10"
|
||||||
Opacity="0.1" />
|
SweepAngle="360" />
|
||||||
</Panel>
|
</Panel>
|
||||||
|
</SplitView>
|
||||||
</SplitView>
|
|
||||||
</Border>
|
|
||||||
</TabItem>
|
|
||||||
<TabItem Header="VerticalSplitView">
|
|
||||||
<Border
|
|
||||||
BorderBrush="{DynamicResource SemiGrey1}"
|
|
||||||
BorderThickness="1">
|
|
||||||
<SplitView
|
|
||||||
Name="SplitView2"
|
|
||||||
Theme="{DynamicResource VerticalSplitView}"
|
|
||||||
IsPaneOpen="{Binding #PaneOpenButton.IsChecked,Mode=TwoWay}"
|
|
||||||
UseLightDismissOverlayMode="{Binding #UseLightDismissOverlayModeButton.IsChecked}"
|
|
||||||
PanePlacement="{Binding #PanePlacementButton.IsChecked}"
|
|
||||||
DisplayMode="{Binding #DisplayModeSelector.SelectedItem}"
|
|
||||||
CompactPaneLength="{Binding #CompactPaneLengthSlider.Value}"
|
|
||||||
OpenPaneLength="{Binding #OpenPaneLengthSlider.Value}">
|
|
||||||
<SplitView.Background>
|
|
||||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
|
||||||
<GradientStop Color="#6b4c1b" Offset="0" />
|
|
||||||
<GradientStop Color="#291e10" Offset="1" />
|
|
||||||
</LinearGradientBrush>
|
|
||||||
</SplitView.Background>
|
|
||||||
<SplitView.Pane>
|
|
||||||
<Grid RowDefinitions="Auto,Auto,*">
|
|
||||||
<ToggleSwitch
|
|
||||||
Grid.Row="0"
|
|
||||||
Theme="{DynamicResource IconBorderlessToggleSwitch}"
|
|
||||||
Content="{StaticResource SemiIconSidebar}"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
IsChecked="{Binding #SplitView2.IsPaneOpen}" />
|
|
||||||
<TextBlock
|
|
||||||
Grid.Row="1"
|
|
||||||
Margin="8,12"
|
|
||||||
FontWeight="Bold"
|
|
||||||
Text="Playlist" />
|
|
||||||
<ListBox
|
|
||||||
Grid.Row="2"
|
|
||||||
ItemsSource="{Binding Songs}" />
|
|
||||||
</Grid>
|
|
||||||
</SplitView.Pane>
|
|
||||||
|
|
||||||
<Panel>
|
|
||||||
<Panel.Styles>
|
|
||||||
<Style Selector="Image#AlbumCover2">
|
|
||||||
<Style.Animations>
|
|
||||||
<Animation IterationCount="Infinite" Duration="0:0:40">
|
|
||||||
<KeyFrame Cue="0%">
|
|
||||||
<Setter Property="RotateTransform.Angle" Value="0" />
|
|
||||||
</KeyFrame>
|
|
||||||
<KeyFrame Cue="100%">
|
|
||||||
<Setter Property="RotateTransform.Angle" Value="360" />
|
|
||||||
</KeyFrame>
|
|
||||||
</Animation>
|
|
||||||
</Style.Animations>
|
|
||||||
</Style>
|
|
||||||
</Panel.Styles>
|
|
||||||
<Image
|
|
||||||
Source="/Assets/WORLD.png"
|
|
||||||
Name="AlbumCover2"
|
|
||||||
Width="200"
|
|
||||||
Height="200" />
|
|
||||||
<Arc
|
|
||||||
Width="290"
|
|
||||||
Height="290"
|
|
||||||
StartAngle="0"
|
|
||||||
SweepAngle="360"
|
|
||||||
StrokeJoin="Round"
|
|
||||||
StrokeLineCap="Round"
|
|
||||||
StrokeThickness="45">
|
|
||||||
<Arc.Stroke>
|
|
||||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,0%">
|
|
||||||
<GradientStop Color="#010101" Offset="0" />
|
|
||||||
<GradientStop Color="#363636" Offset="0.5" />
|
|
||||||
<GradientStop Color="#010101" Offset="1" />
|
|
||||||
</LinearGradientBrush>
|
|
||||||
</Arc.Stroke>
|
|
||||||
</Arc>
|
|
||||||
<Arc
|
|
||||||
Width="294"
|
|
||||||
Height="294"
|
|
||||||
StartAngle="0"
|
|
||||||
SweepAngle="360"
|
|
||||||
StrokeJoin="Round"
|
|
||||||
StrokeLineCap="Round"
|
|
||||||
StrokeThickness="4"
|
|
||||||
Stroke="Black" />
|
|
||||||
<Arc
|
|
||||||
Width="310"
|
|
||||||
Height="310"
|
|
||||||
StartAngle="0"
|
|
||||||
SweepAngle="360"
|
|
||||||
StrokeJoin="Round"
|
|
||||||
StrokeLineCap="Round"
|
|
||||||
StrokeThickness="10"
|
|
||||||
Stroke="#C6CACD"
|
|
||||||
Opacity="0.1" />
|
|
||||||
</Panel>
|
|
||||||
|
|
||||||
</SplitView>
|
|
||||||
</Border>
|
|
||||||
</TabItem>
|
|
||||||
</TabControl>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels;assembly=Semi.Avalonia.Demo"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels;assembly=Semi.Avalonia.Demo"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:TabControlDemoViewModel"
|
x:DataType="vm:TabControlDemoViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<ScrollViewer>
|
<ScrollViewer>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Semi.Avalonia.Demo.Pages.TabStripDemo"
|
x:Class="Semi.Avalonia.Demo.Pages.TabStripDemo"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:TabStripDemoViewModel">
|
x:DataType="vm:TabStripDemoViewModel">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:TabStripDemoViewModel />
|
<vm:TabStripDemoViewModel />
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
IsEnabled="False" />
|
IsEnabled="False" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<TextBox Width="300" Classes="TextArea" Watermark="TextArea TextBox" />
|
<TextBox Width="300" Classes="TextArea" Watermark="TextArea TextBox" />
|
||||||
|
<TextBox Width="300" Classes="TextArea ClearButton" Text="TextArea with ClearButton - text should be clearable" />
|
||||||
<TextBox
|
<TextBox
|
||||||
Width="300"
|
Width="300"
|
||||||
Theme="{StaticResource LooklessTextBox}"
|
Theme="{StaticResource LooklessTextBox}"
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
xmlns:converters="clr-namespace:Semi.Avalonia.Demo.Converters"
|
xmlns:converters="clr-namespace:Semi.Avalonia.Demo.Converters"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Semi.Avalonia.Demo.Pages.TreeDataGridDemo"
|
x:Class="Semi.Avalonia.Demo.Pages.TreeDataGridDemo"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:TreeDataGridDemoViewModel">
|
x:DataType="vm:TreeDataGridDemoViewModel">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<converters:FileIconConverter x:Key="FileIconConverter">
|
<converters:FileIconConverter x:Key="FileIconConverter">
|
||||||
|
|||||||
@@ -14,10 +14,9 @@ public partial class TreeDataGridDemo : UserControl
|
|||||||
|
|
||||||
private void SelectedPath_KeyDown(object? sender, KeyEventArgs e)
|
private void SelectedPath_KeyDown(object? sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Key == Key.Enter)
|
if (e.Key == Key.Enter && DataContext is TreeDataGridDemoViewModel vm)
|
||||||
{
|
{
|
||||||
var vm = DataContext as TreeDataGridDemoViewModel;
|
vm.FilesContext.SelectedPath = (sender as TextBox)?.Text;
|
||||||
vm.FilesContext.SelectedPath = (sender as TextBox)!.Text;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,6 @@
|
|||||||
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:vm="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="vm:TreeViewVm"
|
x:DataType="vm:TreeViewVm"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|
||||||
|
|||||||
@@ -21,33 +21,40 @@ public class TreeViewVm : ObservableObject
|
|||||||
|
|
||||||
public TreeViewVm()
|
public TreeViewVm()
|
||||||
{
|
{
|
||||||
Items = new ObservableCollection<TreeViewItemVm>()
|
Items =
|
||||||
{
|
[
|
||||||
new TreeViewItemVm() { Name = "Item 1", Id = "1" },
|
new TreeViewItemVm { Name = "Item 1", Id = "1" },
|
||||||
new TreeViewItemVm() { Name = "Item 2", Id = "2" },
|
new TreeViewItemVm { Name = "Item 2", Id = "2" },
|
||||||
new TreeViewItemVm()
|
new TreeViewItemVm
|
||||||
{
|
{
|
||||||
Name = "Item 3", Id = "3", Items = new ObservableCollection<TreeViewItemVm>()
|
Name = "Item 3", Id = "3", Items =
|
||||||
{
|
[
|
||||||
new TreeViewItemVm() { Name = "Item 3.1", Id = "3.1" },
|
new TreeViewItemVm { Name = "Item 3.1", Id = "3.1" },
|
||||||
new TreeViewItemVm() { Name = "Item 3.2", Id = "3.2" },
|
new TreeViewItemVm { Name = "Item 3.2", Id = "3.2" },
|
||||||
new TreeViewItemVm() { Name = "Item 3.3", Id = "3.3" },
|
new TreeViewItemVm { Name = "Item 3.3", Id = "3.3" }
|
||||||
},
|
],
|
||||||
},
|
}
|
||||||
};
|
|
||||||
|
|
||||||
MultipleLevelItems = new();
|
];
|
||||||
for (int i = 1; i < 6; i++)
|
|
||||||
|
MultipleLevelItems = [];
|
||||||
|
for (var i = 1; i < 6; i++)
|
||||||
{
|
{
|
||||||
FirstItem firstItem = new FirstItem { Id = i, Name = $"FirstItem {i}" };
|
var firstItem = new FirstItem
|
||||||
firstItem.SecondItems = new();
|
|
||||||
for (int j = 1; j < 6; j++)
|
|
||||||
{
|
{
|
||||||
SecondItem secondItem = new SecondItem { Id = j, Name = $"SecondItem {j}" };
|
Id = i, Name = $"FirstItem {i}",
|
||||||
secondItem.ThirdItemItems = new();
|
SecondItems = []
|
||||||
for (int k = 1; k < 6; k++)
|
};
|
||||||
|
for (var j = 1; j < 6; j++)
|
||||||
|
{
|
||||||
|
var secondItem = new SecondItem
|
||||||
{
|
{
|
||||||
ThirdItem thirdItem = new ThirdItem { Id = k, Name = $"ThirdItem {k}" };
|
Id = j, Name = $"SecondItem {j}",
|
||||||
|
ThirdItemItems = []
|
||||||
|
};
|
||||||
|
for (var k = 1; k < 6; k++)
|
||||||
|
{
|
||||||
|
var thirdItem = new ThirdItem { Id = k, Name = $"ThirdItem {k}" };
|
||||||
secondItem.ThirdItemItems.Add(thirdItem);
|
secondItem.ThirdItemItems.Add(thirdItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,9 +68,9 @@ public class TreeViewVm : ObservableObject
|
|||||||
|
|
||||||
public partial class TreeViewItemVm : ObservableObject
|
public partial class TreeViewItemVm : ObservableObject
|
||||||
{
|
{
|
||||||
public ObservableCollection<TreeViewItemVm> Items { get; set; }
|
public ObservableCollection<TreeViewItemVm> Items { get; set; } = [];
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
public string Id { get; set; }
|
public string? Id { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ItemBase
|
public class ItemBase
|
||||||
|
|||||||
@@ -6,89 +6,99 @@
|
|||||||
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Semi.Avalonia.Demo.Pages.VariablesDemo"
|
x:Class="Semi.Avalonia.Demo.Pages.VariablesDemo"
|
||||||
x:DataType="vm:VariablesDemoViewModel"
|
x:DataType="vm:VariablesDemoViewModel">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:VariablesDemoViewModel />
|
<vm:VariablesDemoViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
<DataGrid
|
<Grid RowDefinitions="Auto, *">
|
||||||
Margin="8"
|
<TextBox
|
||||||
CanUserReorderColumns="True"
|
Grid.Row="0"
|
||||||
CanUserResizeColumns="True"
|
Width="600"
|
||||||
CanUserSortColumns="True"
|
Margin="8"
|
||||||
HeadersVisibility="All"
|
Classes="ClearButton"
|
||||||
IsReadOnly="True"
|
Text="{Binding SearchText}"
|
||||||
ItemsSource="{Binding GridData}">
|
Watermark="Input Variable Category/ResourceKey/Type/Value/Description" />
|
||||||
<DataGrid.Columns>
|
|
||||||
<DataGridTemplateColumn
|
<DataGrid
|
||||||
Width="300"
|
Grid.Row="1"
|
||||||
x:DataType="vm:VariableItem"
|
Margin="8"
|
||||||
Header="ResourceKey">
|
CanUserReorderColumns="True"
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
CanUserResizeColumns="True"
|
||||||
<DataTemplate DataType="vm:VariableItem">
|
CanUserSortColumns="True"
|
||||||
<SelectableTextBlock
|
HeadersVisibility="All"
|
||||||
Margin="12,0"
|
IsReadOnly="True"
|
||||||
VerticalAlignment="Center"
|
ItemsSource="{Binding GridData}">
|
||||||
Text="{Binding ResourceKey}" />
|
<DataGrid.Columns>
|
||||||
</DataTemplate>
|
<DataGridTemplateColumn
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
Width="300"
|
||||||
</DataGridTemplateColumn>
|
x:DataType="vm:VariableItem"
|
||||||
<DataGridTemplateColumn
|
Header="ResourceKey">
|
||||||
Width="200"
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
x:DataType="vm:VariableItem"
|
<DataTemplate DataType="vm:VariableItem">
|
||||||
Header="Type">
|
<SelectableTextBlock
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
Margin="12,0"
|
||||||
<DataTemplate DataType="vm:VariableItem">
|
VerticalAlignment="Center"
|
||||||
<SelectableTextBlock
|
Text="{Binding ResourceKey}" />
|
||||||
Margin="12,0"
|
</DataTemplate>
|
||||||
VerticalAlignment="Center"
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
Text="{Binding Type.Name}" />
|
</DataGridTemplateColumn>
|
||||||
</DataTemplate>
|
<DataGridTemplateColumn
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
Width="200"
|
||||||
</DataGridTemplateColumn>
|
x:DataType="vm:VariableItem"
|
||||||
<DataGridTemplateColumn
|
Header="Type">
|
||||||
Width="200"
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
x:DataType="vm:VariableItem"
|
<DataTemplate DataType="vm:VariableItem">
|
||||||
Header="Value">
|
<SelectableTextBlock
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
Margin="12,0"
|
||||||
<DataTemplate DataType="vm:VariableItem">
|
VerticalAlignment="Center"
|
||||||
<SelectableTextBlock
|
Text="{Binding Type.Name}" />
|
||||||
Margin="12,0"
|
</DataTemplate>
|
||||||
VerticalAlignment="Center"
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
Text="{Binding Value}"
|
</DataGridTemplateColumn>
|
||||||
TextWrapping="Wrap" />
|
<DataGridTemplateColumn
|
||||||
</DataTemplate>
|
Width="200"
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
x:DataType="vm:VariableItem"
|
||||||
</DataGridTemplateColumn>
|
Header="Value">
|
||||||
<DataGridTemplateColumn
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
Width="*"
|
<DataTemplate DataType="vm:VariableItem">
|
||||||
x:DataType="vm:VariableItem"
|
<SelectableTextBlock
|
||||||
Header="Description">
|
Margin="12,0"
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
VerticalAlignment="Center"
|
||||||
<DataTemplate DataType="vm:VariableItem">
|
Text="{Binding Value}"
|
||||||
<SelectableTextBlock
|
TextWrapping="Wrap" />
|
||||||
Margin="12,0"
|
</DataTemplate>
|
||||||
VerticalAlignment="Center"
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
Text="{Binding Description}"
|
</DataGridTemplateColumn>
|
||||||
TextWrapping="Wrap" />
|
<DataGridTemplateColumn
|
||||||
</DataTemplate>
|
Width="*"
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
x:DataType="vm:VariableItem"
|
||||||
</DataGridTemplateColumn>
|
Header="Description">
|
||||||
<DataGridTemplateColumn
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
Width="100"
|
<DataTemplate DataType="vm:VariableItem">
|
||||||
x:DataType="vm:VariableItem"
|
<SelectableTextBlock
|
||||||
Header="CopyText"
|
Margin="12,0"
|
||||||
SortMemberPath="Duration">
|
VerticalAlignment="Center"
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
Text="{Binding Description}"
|
||||||
<DataTemplate DataType="vm:VariableItem">
|
TextWrapping="Wrap" />
|
||||||
<Button
|
</DataTemplate>
|
||||||
Command="{Binding $parent[pages:VariablesDemo].Copy}"
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
CommandParameter="{Binding CopyText}"
|
</DataGridTemplateColumn>
|
||||||
Theme="{DynamicResource IconBorderlessButton}"
|
<DataGridTemplateColumn
|
||||||
Content="{StaticResource SemiIconCopy}" />
|
Width="100"
|
||||||
</DataTemplate>
|
x:DataType="vm:VariableItem"
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
Header="CopyText"
|
||||||
</DataGridTemplateColumn>
|
SortMemberPath="Duration">
|
||||||
</DataGrid.Columns>
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
</DataGrid>
|
<DataTemplate DataType="vm:VariableItem">
|
||||||
|
<Button
|
||||||
|
Command="{Binding $parent[pages:VariablesDemo].Copy}"
|
||||||
|
CommandParameter="{Binding CopyText}"
|
||||||
|
Theme="{DynamicResource IconBorderlessButton}"
|
||||||
|
Content="{StaticResource SemiIconCopy}" />
|
||||||
|
</DataTemplate>
|
||||||
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
|
</DataGridTemplateColumn>
|
||||||
|
</DataGrid.Columns>
|
||||||
|
</DataGrid>
|
||||||
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
|
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls"
|
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type controls:ColorDetailControl}" TargetType="controls:ColorDetailControl">
|
<ControlTheme x:Key="{x:Type controls:ColorDetailControl}" TargetType="controls:ColorDetailControl">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="controls:ColorDetailControl">
|
<ControlTemplate TargetType="controls:ColorDetailControl">
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:controls="using:Semi.Avalonia.Demo.Controls"
|
xmlns:controls="using:Semi.Avalonia.Demo.Controls">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<controls:ColorItemControl />
|
<controls:ColorItemControl />
|
||||||
</Design.PreviewWith>
|
</Design.PreviewWith>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls"
|
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls"
|
||||||
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="viewModels:FunctionalColorGroupViewModel">
|
x:DataType="viewModels:FunctionalColorGroupViewModel">
|
||||||
<ControlTheme x:Key="{x:Type controls:FunctionalColorGroupControl}" TargetType="controls:FunctionalColorGroupControl">
|
<ControlTheme x:Key="{x:Type controls:FunctionalColorGroupControl}" TargetType="controls:FunctionalColorGroupControl">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls"
|
xmlns:controls="clr-namespace:Semi.Avalonia.Demo.Controls"
|
||||||
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
xmlns:viewModels="clr-namespace:Semi.Avalonia.Demo.ViewModels"
|
||||||
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="viewModels:ShadowGroupViewModel">
|
x:DataType="viewModels:ShadowGroupViewModel">
|
||||||
<ControlTheme x:Key="{x:Type controls:ShadowGroupControl}" TargetType="controls:ShadowGroupControl">
|
<ControlTheme x:Key="{x:Type controls:ShadowGroupControl}" TargetType="controls:ShadowGroupControl">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
|
|||||||
@@ -1,12 +1,37 @@
|
|||||||
using Avalonia;
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
using Avalonia.Controls.ApplicationLifetimes;
|
using Avalonia.Controls.ApplicationLifetimes;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
|
|
||||||
namespace Semi.Avalonia.Demo.ViewModels;
|
namespace Semi.Avalonia.Demo.ViewModels;
|
||||||
|
|
||||||
public partial class ApplicationViewModel : ObservableObject
|
public partial class ApplicationViewModel : ObservableObject
|
||||||
{
|
{
|
||||||
|
[RelayCommand]
|
||||||
|
private void Activate()
|
||||||
|
{
|
||||||
|
if (Application.Current?.ApplicationLifetime is not IClassicDesktopStyleApplicationLifetime desktop) return;
|
||||||
|
var mainWindow = desktop.MainWindow;
|
||||||
|
if (mainWindow is not null && !mainWindow.IsActive)
|
||||||
|
{
|
||||||
|
if (mainWindow.WindowState is WindowState.Minimized)
|
||||||
|
{
|
||||||
|
mainWindow.WindowState = WindowState.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainWindow.Activate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void JumpTo(string header)
|
||||||
|
{
|
||||||
|
Activate();
|
||||||
|
WeakReferenceMessenger.Default.Send(header, "JumpTo");
|
||||||
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private void Exit()
|
private void Exit()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
@@ -9,7 +10,7 @@ namespace Semi.Avalonia.Demo.ViewModels;
|
|||||||
|
|
||||||
public partial class IconDemoViewModel : ObservableObject
|
public partial class IconDemoViewModel : ObservableObject
|
||||||
{
|
{
|
||||||
private readonly IResourceDictionary? _resources = new Icons();
|
private readonly Icons _resources = new();
|
||||||
|
|
||||||
private readonly Dictionary<string, IconItem> _filledIcons = new();
|
private readonly Dictionary<string, IconItem> _filledIcons = new();
|
||||||
private readonly Dictionary<string, IconItem> _strokedIcons = new();
|
private readonly Dictionary<string, IconItem> _strokedIcons = new();
|
||||||
@@ -21,8 +22,6 @@ public partial class IconDemoViewModel : ObservableObject
|
|||||||
|
|
||||||
public void InitializeResources()
|
public void InitializeResources()
|
||||||
{
|
{
|
||||||
if (_resources is null) return;
|
|
||||||
|
|
||||||
foreach (var provider in _resources.MergedDictionaries)
|
foreach (var provider in _resources.MergedDictionaries)
|
||||||
{
|
{
|
||||||
if (provider is not ResourceDictionary dic) continue;
|
if (provider is not ResourceDictionary dic) continue;
|
||||||
@@ -30,16 +29,17 @@ public partial class IconDemoViewModel : ObservableObject
|
|||||||
foreach (var key in dic.Keys)
|
foreach (var key in dic.Keys)
|
||||||
{
|
{
|
||||||
if (dic[key] is not Geometry geometry) continue;
|
if (dic[key] is not Geometry geometry) continue;
|
||||||
|
var resourceKey = key.ToString() ?? string.Empty;
|
||||||
var icon = new IconItem
|
var icon = new IconItem
|
||||||
{
|
{
|
||||||
ResourceKey = key.ToString(),
|
ResourceKey = resourceKey,
|
||||||
Geometry = geometry
|
Geometry = geometry
|
||||||
};
|
};
|
||||||
|
|
||||||
if (key.ToString().EndsWith("Stroked"))
|
if (resourceKey.EndsWith("Stroked", StringComparison.InvariantCultureIgnoreCase))
|
||||||
_strokedIcons[key.ToString().ToLowerInvariant()] = icon;
|
_strokedIcons[resourceKey] = icon;
|
||||||
else
|
else
|
||||||
_filledIcons[key.ToString().ToLowerInvariant()] = icon;
|
_filledIcons[resourceKey] = icon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,16 +48,16 @@ public partial class IconDemoViewModel : ObservableObject
|
|||||||
|
|
||||||
partial void OnSearchTextChanged(string? value)
|
partial void OnSearchTextChanged(string? value)
|
||||||
{
|
{
|
||||||
var search = value?.ToLowerInvariant() ?? string.Empty;
|
var search = string.IsNullOrWhiteSpace(value) ? string.Empty : value.Trim();
|
||||||
|
|
||||||
FilteredFilledIcons.Clear();
|
FilteredFilledIcons.Clear();
|
||||||
foreach (var pair in _filledIcons.Where(i => i.Key.Contains(search)))
|
foreach (var pair in _filledIcons.Where(kv => kv.Key.Contains(search, StringComparison.InvariantCultureIgnoreCase)))
|
||||||
{
|
{
|
||||||
FilteredFilledIcons.Add(pair.Value);
|
FilteredFilledIcons.Add(pair.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
FilteredStrokedIcons.Clear();
|
FilteredStrokedIcons.Clear();
|
||||||
foreach (var pair in _strokedIcons.Where(i => i.Key.Contains(search)))
|
foreach (var pair in _strokedIcons.Where(kv => kv.Key.Contains(search, StringComparison.InvariantCultureIgnoreCase)))
|
||||||
{
|
{
|
||||||
FilteredStrokedIcons.Add(pair.Value);
|
FilteredStrokedIcons.Add(pair.Value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,4 +26,12 @@ public class SplitViewDemoViewModel : ObservableObject
|
|||||||
SplitViewDisplayMode.Overlay,
|
SplitViewDisplayMode.Overlay,
|
||||||
SplitViewDisplayMode.CompactOverlay,
|
SplitViewDisplayMode.CompactOverlay,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public static ObservableCollection<SplitViewPanePlacement> Placements { get; set; } =
|
||||||
|
[
|
||||||
|
SplitViewPanePlacement.Left,
|
||||||
|
SplitViewPanePlacement.Right,
|
||||||
|
SplitViewPanePlacement.Top,
|
||||||
|
SplitViewPanePlacement.Bottom
|
||||||
|
];
|
||||||
}
|
}
|
||||||
@@ -19,9 +19,15 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
public IList<string> Drives { get; }
|
public IList<string> Drives { get; }
|
||||||
public HierarchicalTreeDataGridSource<FileNodeViewModel> Source { get; }
|
public HierarchicalTreeDataGridSource<FileNodeViewModel> Source { get; }
|
||||||
[ObservableProperty] private string _selectedDrive;
|
[ObservableProperty] private string _selectedDrive;
|
||||||
[ObservableProperty] private string? _selectedPath;
|
private string? _selectedPath;
|
||||||
[ObservableProperty] private FileNodeViewModel? _root;
|
[ObservableProperty] private FileNodeViewModel? _root;
|
||||||
|
|
||||||
|
public string? SelectedPath
|
||||||
|
{
|
||||||
|
get => _selectedPath;
|
||||||
|
set => SetSelectedPath(value);
|
||||||
|
}
|
||||||
|
|
||||||
partial void OnSelectedDriveChanged(string value)
|
partial void OnSelectedDriveChanged(string value)
|
||||||
{
|
{
|
||||||
Root = new FileNodeViewModel(value, true, true);
|
Root = new FileNodeViewModel(value, true, true);
|
||||||
@@ -31,11 +37,6 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
partial void OnSelectedPathChanged(string? value)
|
|
||||||
{
|
|
||||||
SetSelectedPath(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public FilesPageViewModel()
|
public FilesPageViewModel()
|
||||||
{
|
{
|
||||||
Drives = DriveInfo.GetDrives().Select(x => x.Name).ToList();
|
Drives = DriveInfo.GetDrives().Select(x => x.Name).ToList();
|
||||||
@@ -48,7 +49,7 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
SelectedDrive = Drives.FirstOrDefault() ?? "/";
|
SelectedDrive = Drives.FirstOrDefault() ?? "/";
|
||||||
}
|
}
|
||||||
|
|
||||||
Source = new HierarchicalTreeDataGridSource<FileNodeViewModel>(Array.Empty<FileNodeViewModel>())
|
Source = new HierarchicalTreeDataGridSource<FileNodeViewModel>([])
|
||||||
{
|
{
|
||||||
Columns =
|
Columns =
|
||||||
{
|
{
|
||||||
@@ -108,16 +109,14 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
foreach (var i in e.SelectedItems)
|
foreach (var i in e.SelectedItems)
|
||||||
Trace.WriteLine($"Selected '{i?.Path}'");
|
Trace.WriteLine($"Selected '{i?.Path}'");
|
||||||
}
|
}
|
||||||
|
private void SetSelectedPath(string? path)
|
||||||
private void SetSelectedPath(string? value)
|
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(value))
|
if (string.IsNullOrEmpty(path))
|
||||||
{
|
{
|
||||||
Source.RowSelection!.Clear();
|
Source.RowSelection!.Clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var path = value;
|
|
||||||
var components = new Stack<string>();
|
var components = new Stack<string>();
|
||||||
DirectoryInfo? d = null;
|
DirectoryInfo? d = null;
|
||||||
|
|
||||||
@@ -148,7 +147,7 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
if (driveIndex >= 0)
|
if (driveIndex >= 0)
|
||||||
SelectedDrive = Drives[driveIndex];
|
SelectedDrive = Drives[driveIndex];
|
||||||
|
|
||||||
FileNodeViewModel? node = _root;
|
var node = Root;
|
||||||
index = new IndexPath(0);
|
index = new IndexPath(0);
|
||||||
|
|
||||||
while (node is not null && components.Count > 0)
|
while (node is not null && components.Count > 0)
|
||||||
@@ -162,7 +161,7 @@ public partial class FilesPageViewModel : ObservableObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Source.Items = [Root];
|
Source.Items = [Root!];
|
||||||
Source.RowSelection!.SelectedIndex = index;
|
Source.RowSelection!.SelectedIndex = index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -275,8 +274,8 @@ public partial class FileNodeViewModel : ObservableObject, IEditableObject
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void IEditableObject.BeginEdit() => _undoName = _name;
|
void IEditableObject.BeginEdit() => _undoName = Name;
|
||||||
void IEditableObject.CancelEdit() => _name = _undoName!;
|
void IEditableObject.CancelEdit() => Name = _undoName ?? string.Empty;
|
||||||
void IEditableObject.EndEdit() => _undoName = null;
|
void IEditableObject.EndEdit() => _undoName = null;
|
||||||
|
|
||||||
private void OnChanged(object sender, FileSystemEventArgs e)
|
private void OnChanged(object sender, FileSystemEventArgs e)
|
||||||
|
|||||||
@@ -10,9 +10,10 @@ using Semi.Avalonia.Tokens;
|
|||||||
|
|
||||||
namespace Semi.Avalonia.Demo.ViewModels;
|
namespace Semi.Avalonia.Demo.ViewModels;
|
||||||
|
|
||||||
public class VariablesDemoViewModel : ObservableObject
|
public partial class VariablesDemoViewModel : ObservableObject
|
||||||
{
|
{
|
||||||
public DataGridCollectionView GridData { get; set; }
|
public DataGridCollectionView GridData { get; set; }
|
||||||
|
[ObservableProperty] private string _searchText = string.Empty;
|
||||||
|
|
||||||
public VariablesDemoViewModel()
|
public VariablesDemoViewModel()
|
||||||
{
|
{
|
||||||
@@ -30,7 +31,7 @@ public class VariablesDemoViewModel : ObservableObject
|
|||||||
GridData.GroupDescriptions.Add(new DataGridPathGroupDescription(nameof(VariableItem.Category)));
|
GridData.GroupDescriptions.Add(new DataGridPathGroupDescription(nameof(VariableItem.Category)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetValueString(object? value)
|
private static string? GetValueString(object? value)
|
||||||
{
|
{
|
||||||
if (value is null) return string.Empty;
|
if (value is null) return string.Empty;
|
||||||
|
|
||||||
@@ -45,6 +46,28 @@ public class VariablesDemoViewModel : ObservableObject
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
partial void OnSearchTextChanged(string value)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(value))
|
||||||
|
{
|
||||||
|
GridData.Filter = _ => true;
|
||||||
|
GridData.Refresh();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var search = value.Trim();
|
||||||
|
GridData.Filter = item =>
|
||||||
|
{
|
||||||
|
if (item is not VariableItem variableItem) return false;
|
||||||
|
return (variableItem.Category?.Contains(search, StringComparison.InvariantCultureIgnoreCase) ?? false) ||
|
||||||
|
(variableItem.ResourceKey?.Contains(search, StringComparison.InvariantCultureIgnoreCase) ?? false) ||
|
||||||
|
(variableItem.Value?.Contains(search, StringComparison.InvariantCultureIgnoreCase) ?? false) ||
|
||||||
|
(variableItem.Type?.Name.Contains(search, StringComparison.InvariantCultureIgnoreCase) ?? false) ||
|
||||||
|
(variableItem.Description?.Contains(search, StringComparison.InvariantCultureIgnoreCase) ?? false);
|
||||||
|
};
|
||||||
|
GridData.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
private static List<VariableItem> Tokens { get; set; } =
|
private static List<VariableItem> Tokens { get; set; } =
|
||||||
[
|
[
|
||||||
new("Height", "SemiHeightControlSmall"),
|
new("Height", "SemiHeightControlSmall"),
|
||||||
@@ -55,6 +78,11 @@ public class VariablesDemoViewModel : ObservableObject
|
|||||||
new("Icon Size", "SemiWidthIconMedium"),
|
new("Icon Size", "SemiWidthIconMedium"),
|
||||||
new("Icon Size", "SemiWidthIconLarge"),
|
new("Icon Size", "SemiWidthIconLarge"),
|
||||||
new("Icon Size", "SemiWidthIconExtraLarge"),
|
new("Icon Size", "SemiWidthIconExtraLarge"),
|
||||||
|
new("Border CornerRadius Spacing", "SemiBorderRadiusSpacingExtraSmall"),
|
||||||
|
new("Border CornerRadius Spacing", "SemiBorderRadiusSpacingSmall"),
|
||||||
|
new("Border CornerRadius Spacing", "SemiBorderRadiusSpacingMedium"),
|
||||||
|
new("Border CornerRadius Spacing", "SemiBorderRadiusSpacingLarge"),
|
||||||
|
new("Border CornerRadius Spacing", "SemiBorderRadiusSpacingFull"),
|
||||||
new("Border CornerRadius", "SemiBorderRadiusExtraSmall"),
|
new("Border CornerRadius", "SemiBorderRadiusExtraSmall"),
|
||||||
new("Border CornerRadius", "SemiBorderRadiusSmall"),
|
new("Border CornerRadius", "SemiBorderRadiusSmall"),
|
||||||
new("Border CornerRadius", "SemiBorderRadiusMedium"),
|
new("Border CornerRadius", "SemiBorderRadiusMedium"),
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
xmlns:views="clr-namespace:Semi.Avalonia.Demo.Views"
|
xmlns:views="clr-namespace:Semi.Avalonia.Demo.Views"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="True"
|
|
||||||
x:DataType="views:MainViewModel"
|
x:DataType="views:MainViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using Avalonia.Controls.ApplicationLifetimes;
|
|||||||
using Avalonia.Styling;
|
using Avalonia.Styling;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
|
|
||||||
namespace Semi.Avalonia.Demo.Views;
|
namespace Semi.Avalonia.Demo.Views;
|
||||||
|
|
||||||
@@ -18,6 +19,19 @@ public partial class MainView : UserControl
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
this.DataContext = new MainViewModel();
|
this.DataContext = new MainViewModel();
|
||||||
|
WeakReferenceMessenger.Default.Register<string, string>(this, "JumpTo", MessageHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MessageHandler(object _, string message)
|
||||||
|
{
|
||||||
|
foreach (var item in tab.ItemsView)
|
||||||
|
{
|
||||||
|
if (item is TabItem tabItem && tabItem.Header is not null && tabItem.Header.Equals(message))
|
||||||
|
{
|
||||||
|
tab.SelectedItem = tabItem;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,6 +105,42 @@ public partial class MainViewModel : ObservableObject
|
|||||||
CommandParameter = new CultureInfo("ja-jp")
|
CommandParameter = new CultureInfo("ja-jp")
|
||||||
},
|
},
|
||||||
new MenuItemViewModel
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "한국어",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("ko-kr")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "English (UK)",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("en-gb")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "Italiano",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("it-it")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "Italiano (Switzerland)",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("it-ch")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "Nederlands",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("nl-nl")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "Nederlands (Belgium)",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("nl-be")
|
||||||
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
{
|
{
|
||||||
Header = "Українська",
|
Header = "Українська",
|
||||||
Command = SelectLocaleCommand,
|
Command = SelectLocaleCommand,
|
||||||
@@ -126,6 +176,12 @@ public partial class MainViewModel : ObservableObject
|
|||||||
Command = SelectLocaleCommand,
|
Command = SelectLocaleCommand,
|
||||||
CommandParameter = new CultureInfo("pl-pl")
|
CommandParameter = new CultureInfo("pl-pl")
|
||||||
},
|
},
|
||||||
|
new MenuItemViewModel
|
||||||
|
{
|
||||||
|
Header = "Français",
|
||||||
|
Command = SelectLocaleCommand,
|
||||||
|
CommandParameter = new CultureInfo("fr-fr")
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -3,14 +3,15 @@
|
|||||||
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
|
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<Version>11.2.1.8</Version>
|
<Version>11.3.7</Version>
|
||||||
<Authors>IRIHI Technology Co., Ltd.</Authors>
|
<Authors>IRIHI Technology Co., Ltd.</Authors>
|
||||||
<Description>Avalonia Theme inspired by Semi Design.</Description>
|
<Description>Avalonia Theme inspired by Semi Design.</Description>
|
||||||
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
|
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
|
||||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
<PackageIcon>irihi.png</PackageIcon>
|
<PackageIcon>irihi.png</PackageIcon>
|
||||||
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl>
|
<PackageProjectUrl>https://github.com/irihitech/Semi.Avalonia</PackageProjectUrl>
|
||||||
<AvaloniaVersion>11.2.1</AvaloniaVersion>
|
<AvaloniaVersion>11.3.7</AvaloniaVersion>
|
||||||
|
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft" />
|
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft" />
|
||||||
<converters:ToBrushConverter x:Key="ToBrushConverter" />
|
<converters:ToBrushConverter x:Key="ToBrushConverter" />
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters"
|
||||||
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
|
xmlns:pc="using:Avalonia.Controls.Primitives.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<pc:AccentColorConverter x:Key="AccentColorConverter" />
|
<pc:AccentColorConverter x:Key="AccentColorConverter" />
|
||||||
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft" />
|
<converters:CornerRadiusFilterConverter x:Key="LeftCornerRadiusFilterConverter" Filter="TopLeft, BottomLeft" />
|
||||||
<converters:CornerRadiusFilterConverter x:Key="RightCornerRadiusFilterConverter" Filter="TopRight, BottomRight" />
|
<converters:CornerRadiusFilterConverter x:Key="RightCornerRadiusFilterConverter" Filter="TopRight, BottomRight" />
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
|
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
|
||||||
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
|
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<converters:EnumToBoolConverter x:Key="EnumToBoolConverter" />
|
<converters:EnumToBoolConverter x:Key="EnumToBoolConverter" />
|
||||||
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
|
<converters:CornerRadiusToDoubleConverter x:Key="TopLeftCornerRadiusConverter" Corner="TopLeft" />
|
||||||
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
|
<converters:CornerRadiusToDoubleConverter x:Key="BottomRightCornerRadiusConverter" Corner="BottomRight" />
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters"
|
||||||
xmlns:globalization="using:System.Globalization"
|
xmlns:globalization="using:System.Globalization"
|
||||||
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
|
xmlns:pc="using:Avalonia.Controls.Primitives.Converters"
|
||||||
xmlns:cvts="clr-namespace:Semi.Avalonia.ColorPicker.Converters"
|
xmlns:cvts="clr-namespace:Semi.Avalonia.ColorPicker.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
|
<pc:ContrastBrushConverter x:Key="ContrastBrushConverter" />
|
||||||
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />
|
<converters:ColorToDisplayNameConverter x:Key="ColorToDisplayNameConverter" />
|
||||||
<converters:ColorToHexConverter x:Key="ColorToHexConverter" />
|
<converters:ColorToHexConverter x:Key="ColorToHexConverter" />
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
x:CompileBindings="True"
|
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
<ResourceDictionary.MergedDictionaries>
|
<ResourceDictionary.MergedDictionaries>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Title>Semi.Avalonia.ColorPicker</Title>
|
<Title>Semi.Avalonia.ColorPicker</Title>
|
||||||
<PackageReleaseNotes>Update to Semi.Avalonia.ColorPicker 11.2.1.8</PackageReleaseNotes>
|
<PackageReleaseNotes>Update to Semi.Avalonia.ColorPicker 11.3.7</PackageReleaseNotes>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
|
<TargetFrameworks>netstandard2.0;net6.0;net8.0</TargetFrameworks>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<Version>11.2.1.8</Version>
|
<Version>11.3.7</Version>
|
||||||
<PackageReleaseNotes>Update to Semi.Avalonia.DataGrid 11.2.1.8</PackageReleaseNotes>
|
<PackageReleaseNotes>Update to Semi.Avalonia.DataGrid 11.3.7</PackageReleaseNotes>
|
||||||
<Authors>IRIHI Technology Co., Ltd.</Authors>
|
<Authors>IRIHI Technology Co., Ltd.</Authors>
|
||||||
<Description>Avalonia Theme inspired by Semi Design.</Description>
|
<Description>Avalonia Theme inspired by Semi Design.</Description>
|
||||||
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
|
<RepositoryUrl>https://github.com/irihitech/Semi.Avalonia</RepositoryUrl>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.2.1"/>
|
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.7"/>
|
||||||
<None Include="..\..\irihi.png" Pack="true" PackagePath="\" Link="Properties\irihi.png"/>
|
<None Include="..\..\irihi.png" Pack="true" PackagePath="\" Link="Properties\irihi.png"/>
|
||||||
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" Link="Properties\LICENSE"/>
|
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" Link="Properties\LICENSE"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls.TreeDataGrid">
|
xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls.TreeDataGrid"
|
||||||
|
x:CompileBindings="True">
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20">
|
<StackPanel Margin="20">
|
||||||
<TreeDataGridColumnHeader Header="123" />
|
<TreeDataGridColumnHeader Header="123" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type AdornerLayer}" TargetType="AdornerLayer">
|
<ControlTheme x:Key="{x:Type AdornerLayer}" TargetType="AdornerLayer">
|
||||||
<Setter Property="DefaultFocusAdorner">
|
<Setter Property="DefaultFocusAdorner">
|
||||||
<FocusAdornerTemplate>
|
<FocusAdornerTemplate>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Spacing="20">
|
<StackPanel Margin="20" Spacing="20">
|
||||||
<TextBox Text="Hello" />
|
<TextBox Text="Hello" />
|
||||||
@@ -28,6 +27,7 @@
|
|||||||
<Popup
|
<Popup
|
||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
MaxHeight="{TemplateBinding MaxDropDownHeight}"
|
MaxHeight="{TemplateBinding MaxDropDownHeight}"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
PlacementTarget="{TemplateBinding}">
|
PlacementTarget="{TemplateBinding}">
|
||||||
<Border
|
<Border
|
||||||
@@ -67,6 +67,7 @@
|
|||||||
<Popup
|
<Popup
|
||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
MaxHeight="{TemplateBinding MaxDropDownHeight}"
|
MaxHeight="{TemplateBinding MaxDropDownHeight}"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
PlacementTarget="{TemplateBinding}">
|
PlacementTarget="{TemplateBinding}">
|
||||||
<Border
|
<Border
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Spacing="20">
|
<StackPanel Margin="20" Spacing="20">
|
||||||
<Border Theme="{StaticResource CardBorder}">
|
<Border Theme="{StaticResource CardBorder}">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<!-- Button Theme Key: Light, Solid, Outline, Borderless; Default is Light -->
|
<!-- Button Theme Key: Light, Solid, Outline, Borderless; Default is Light -->
|
||||||
<!-- Button Default Classes: Primary, Secondary, Tertiary, Success, Warning, Danger; Default is Primary -->
|
<!-- Button Default Classes: Primary, Secondary, Tertiary, Success, Warning, Danger; Default is Primary -->
|
||||||
<!-- State: default, pointerover, pressed, disabled -->
|
<!-- State: default, pointerover, pressed, disabled -->
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Spacing="20">
|
<StackPanel Margin="20" Spacing="20">
|
||||||
<ButtonSpinner Content="Hello World" />
|
<ButtonSpinner Content="Hello World" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<Border Padding="20">
|
<Border Padding="20">
|
||||||
<Calendar />
|
<Calendar />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Width="800" Height="400">
|
<StackPanel Margin="20" Width="800" Height="400">
|
||||||
<CalendarDatePicker HorizontalAlignment="Center" Classes="ClearButton" />
|
<CalendarDatePicker HorizontalAlignment="Center" Classes="ClearButton" />
|
||||||
@@ -96,6 +95,7 @@
|
|||||||
<Popup
|
<Popup
|
||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
Placement="BottomEdgeAlignedLeft"
|
Placement="BottomEdgeAlignedLeft"
|
||||||
PlacementTarget="{TemplateBinding}">
|
PlacementTarget="{TemplateBinding}">
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
DisplayDateStart="{TemplateBinding DisplayDateStart}"
|
DisplayDateStart="{TemplateBinding DisplayDateStart}"
|
||||||
FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}"
|
FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}"
|
||||||
IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}"
|
IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}"
|
||||||
SelectedDate="{TemplateBinding SelectedDate, Mode=TwoWay}" />
|
SelectedDate="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedDate, Mode=TwoWay}" />
|
||||||
</Border>
|
</Border>
|
||||||
</Popup>
|
</Popup>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<CaptionButtons />
|
<CaptionButtons />
|
||||||
</Design.PreviewWith>
|
</Design.PreviewWith>
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converter="clr-namespace:Semi.Avalonia.Converters"
|
xmlns:converter="clr-namespace:Semi.Avalonia.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Spacing="20" Width="800" Height="800">
|
<StackPanel Spacing="20" Width="800" Height="800">
|
||||||
<StackPanel.Styles>
|
<StackPanel.Styles>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<ThemeVariantScope RequestedThemeVariant="Dark">
|
<ThemeVariantScope RequestedThemeVariant="Dark">
|
||||||
<StackPanel Background="{DynamicResource SemiBackground0Color}">
|
<StackPanel Background="{DynamicResource SemiBackground0Color}">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20">
|
<StackPanel Margin="20">
|
||||||
<ComboBoxItem>Hello World</ComboBoxItem>
|
<ComboBoxItem>Hello World</ComboBoxItem>
|
||||||
@@ -67,8 +66,14 @@
|
|||||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
TextTrimming="CharacterEllipsis"
|
TextTrimming="CharacterEllipsis"
|
||||||
Foreground="{TemplateBinding PlaceholderForeground}"
|
Foreground="{TemplateBinding PlaceholderForeground}"
|
||||||
IsVisible="{TemplateBinding SelectionBoxItem,Converter={x:Static ObjectConverters.IsNull}}"
|
Text="{TemplateBinding PlaceholderText}">
|
||||||
Text="{TemplateBinding PlaceholderText}" />
|
<TextBlock.IsVisible>
|
||||||
|
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||||
|
<TemplateBinding Property="SelectionBoxItem" Converter="{x:Static ObjectConverters.IsNull}" />
|
||||||
|
<TemplateBinding Property="IsEditable" Converter="{x:Static BoolConverters.Not}" />
|
||||||
|
</MultiBinding>
|
||||||
|
</TextBlock.IsVisible>
|
||||||
|
</TextBlock>
|
||||||
<ContentPresenter
|
<ContentPresenter
|
||||||
Name="ContentPresenter"
|
Name="ContentPresenter"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
@@ -76,7 +81,20 @@
|
|||||||
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
Content="{TemplateBinding SelectionBoxItem}"
|
Content="{TemplateBinding SelectionBoxItem}"
|
||||||
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" />
|
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
|
||||||
|
IsVisible="{TemplateBinding IsEditable, Converter={x:Static BoolConverters.Not}}" />
|
||||||
|
<TextBox
|
||||||
|
Name="PART_EditableTextBox"
|
||||||
|
Grid.Column="0"
|
||||||
|
Theme="{StaticResource LooklessTextBox}"
|
||||||
|
Padding="{TemplateBinding Padding}"
|
||||||
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
|
Foreground="{TemplateBinding Foreground}"
|
||||||
|
Text="{TemplateBinding Text, Mode=TwoWay}"
|
||||||
|
Watermark="{TemplateBinding PlaceholderText}"
|
||||||
|
IsVisible="{TemplateBinding IsEditable}" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
Name="ClearButton"
|
Name="ClearButton"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
@@ -212,6 +230,11 @@
|
|||||||
</Style>
|
</Style>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^[IsEditable=true]">
|
||||||
|
<Setter Property="IsTabStop" Value="False" />
|
||||||
|
<Setter Property="KeyboardNavigation.TabNavigation" Value="Local" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style Selector="^.Bordered">
|
<Style Selector="^.Bordered">
|
||||||
<Style Selector="^ /template/ Border#Background">
|
<Style Selector="^ /template/ Border#Background">
|
||||||
<Setter Property="Background" Value="{DynamicResource ComboBoxSelectorBorderedBackground}" />
|
<Setter Property="Background" Value="{DynamicResource ComboBoxSelectorBorderedBackground}" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type ContextMenu}" TargetType="ContextMenu">
|
<ControlTheme x:Key="{x:Type ContextMenu}" TargetType="ContextMenu">
|
||||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutBackground}" />
|
<Setter Property="Background" Value="{DynamicResource MenuFlyoutBackground}" />
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource MenuFlyoutBorderBrush}" />
|
<Setter Property="BorderBrush" Value="{DynamicResource MenuFlyoutBorderBrush}" />
|
||||||
|
|||||||
@@ -94,12 +94,10 @@
|
|||||||
<ToolTip.Tip>
|
<ToolTip.Tip>
|
||||||
<ItemsControl x:DataType="collections:IEnumerable" ItemsSource="{Binding}" />
|
<ItemsControl x:DataType="collections:IEnumerable" ItemsSource="{Binding}" />
|
||||||
</ToolTip.Tip>
|
</ToolTip.Tip>
|
||||||
<Path
|
<PathIcon
|
||||||
Width="14"
|
Theme="{StaticResource InnerPathIcon}"
|
||||||
Height="14"
|
Data="{StaticResource SemiIconIssueStroked}"
|
||||||
Data="M14,7 A7,7 0 0,0 0,7 M0,7 A7,7 0 1,0 14,7 M7,3l0,5 M7,9l0,2"
|
Foreground="{DynamicResource DataValidationErrorsForeground}" />
|
||||||
Stroke="{DynamicResource DataValidationErrorsForeground}"
|
|
||||||
StrokeThickness="2" />
|
|
||||||
</Panel>
|
</Panel>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<Border Padding="20">
|
<Border Padding="20">
|
||||||
<DatePickerPresenter />
|
<DatePickerPresenter />
|
||||||
@@ -226,6 +225,7 @@
|
|||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Grid.ColumnSpan="2"
|
Grid.ColumnSpan="2"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
Placement="Bottom"
|
Placement="Bottom"
|
||||||
PlacementTarget="{TemplateBinding}"
|
PlacementTarget="{TemplateBinding}"
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="DateTimePickerFlyoutButton" TargetType="Button">
|
<ControlTheme x:Key="DateTimePickerFlyoutButton" TargetType="Button">
|
||||||
<Setter Property="RenderTransform" Value="none" />
|
<Setter Property="RenderTransform" Value="none" />
|
||||||
<Setter Property="BackgroundSizing" Value="OuterBorderEdge" />
|
<Setter Property="BackgroundSizing" Value="OuterBorderEdge" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20">
|
<StackPanel Margin="20">
|
||||||
<DropDownButton Content="Button" />
|
<DropDownButton Content="Button" />
|
||||||
@@ -259,24 +258,15 @@
|
|||||||
TargetType="DropDownButton">
|
TargetType="DropDownButton">
|
||||||
<Style Selector="^ /template/ Border#PART_Background">
|
<Style Selector="^ /template/ Border#PART_Background">
|
||||||
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlineBackground}" />
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlinePrimaryBorderBrush}" />
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineBorderBrush}" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^:pointerover /template/ Border#PART_Background">
|
<Style Selector="^:pointerover /template/ Border#PART_Background">
|
||||||
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePointeroverBackground}" />
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePointeroverBackground}" />
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlinePrimaryBorderBrush}" />
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineBorderBrush}" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^:pressed /template/ Border#PART_Background">
|
<Style Selector="^:pressed /template/ Border#PART_Background">
|
||||||
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePressedBackground}" />
|
<Setter Property="Background" Value="{DynamicResource ButtonOutlinePressedBackground}" />
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlinePrimaryBorderBrush}" />
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineBorderBrush}" />
|
||||||
</Style>
|
|
||||||
<Style Selector="^.Primary /template/ Border#PART_Background">
|
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlinePrimaryBorderBrush}" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^.Secondary /template/ Border#PART_Background">
|
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineSecondaryBorderBrush}" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^.Tertiary /template/ Border#PART_Background">
|
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineTertiaryBorderBrush}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^.Success /template/ Border#PART_Background">
|
<Style Selector="^.Success /template/ Border#PART_Background">
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineSuccessBorderBrush}" />
|
<Setter Property="BorderBrush" Value="{DynamicResource ButtonOutlineSuccessBorderBrush}" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Spacing="20">
|
<StackPanel Margin="20" Spacing="20">
|
||||||
<TextBox>Hello</TextBox>
|
<TextBox>Hello</TextBox>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type FlyoutPresenter}" TargetType="FlyoutPresenter">
|
<ControlTheme x:Key="{x:Type FlyoutPresenter}" TargetType="FlyoutPresenter">
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||||||
<Setter Property="VerticalContentAlignment" Value="Stretch" />
|
<Setter Property="VerticalContentAlignment" Value="Stretch" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type GridSplitter}" TargetType="GridSplitter">
|
<ControlTheme x:Key="{x:Type GridSplitter}" TargetType="GridSplitter">
|
||||||
<Setter Property="Focusable" Value="True" />
|
<Setter Property="Focusable" Value="True" />
|
||||||
<Setter Property="MinWidth" Value="6" />
|
<Setter Property="MinWidth" Value="6" />
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls"
|
xmlns:converters="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Spacing="20">
|
<StackPanel Spacing="20">
|
||||||
<HeaderedContentControl
|
<HeaderedContentControl
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<HyperlinkButton NavigateUri="http://www.irihi.tech/">
|
<HyperlinkButton NavigateUri="http://www.irihi.tech/">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type ItemsControl}" TargetType="ItemsControl">
|
<ControlTheme x:Key="{x:Type ItemsControl}" TargetType="ItemsControl">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate>
|
<ControlTemplate>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Width="500"
|
Width="500"
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<ListBox Margin="30">
|
<ListBox Margin="30">
|
||||||
<ListBoxItem>Item 1</ListBoxItem>
|
<ListBoxItem>Item 1</ListBoxItem>
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
xmlns:converters="using:Semi.Avalonia.Converters"
|
xmlns:converters="using:Semi.Avalonia.Converters"
|
||||||
xmlns:dialogs="clr-namespace:Avalonia.Dialogs;assembly=Avalonia.Dialogs"
|
xmlns:dialogs="clr-namespace:Avalonia.Dialogs;assembly=Avalonia.Dialogs"
|
||||||
xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal;assembly=Avalonia.Dialogs"
|
xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal;assembly=Avalonia.Dialogs"
|
||||||
xmlns:cvt="using:Avalonia.Controls.Converters"
|
xmlns:cvt="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<Border
|
<Border
|
||||||
Width="800"
|
Width="800"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
|
|
||||||
<converters:PlatformKeyGestureConverter x:Key="KeyGestureConverter" />
|
<converters:PlatformKeyGestureConverter x:Key="KeyGestureConverter" />
|
||||||
|
|
||||||
@@ -191,6 +190,7 @@
|
|||||||
<Popup
|
<Popup
|
||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
HorizontalOffset="-8"
|
HorizontalOffset="-8"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="False"
|
IsLightDismissEnabled="False"
|
||||||
IsOpen="{TemplateBinding IsSubMenuOpen,
|
IsOpen="{TemplateBinding IsSubMenuOpen,
|
||||||
Mode=TwoWay}"
|
Mode=TwoWay}"
|
||||||
@@ -326,6 +326,7 @@
|
|||||||
Name="PART_Popup"
|
Name="PART_Popup"
|
||||||
MinWidth="{Binding $parent[MenuItem].Bounds.Width}"
|
MinWidth="{Binding $parent[MenuItem].Bounds.Width}"
|
||||||
HorizontalOffset="-8"
|
HorizontalOffset="-8"
|
||||||
|
InheritsTransform="True"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
IsOpen="{TemplateBinding IsSubMenuOpen,Mode=TwoWay}"
|
IsOpen="{TemplateBinding IsSubMenuOpen,Mode=TwoWay}"
|
||||||
OverlayInputPassThroughElement="{Binding $parent[Menu]}"
|
OverlayInputPassThroughElement="{Binding $parent[Menu]}"
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<ThemeVariantScope RequestedThemeVariant="Dark">
|
<ThemeVariantScope RequestedThemeVariant="Dark">
|
||||||
<MenuFlyoutPresenter>
|
<MenuFlyoutPresenter>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<ThemeVariantScope RequestedThemeVariant="Dark">
|
<ThemeVariantScope RequestedThemeVariant="Dark">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type NumericUpDown}" TargetType="NumericUpDown">
|
<ControlTheme x:Key="{x:Type NumericUpDown}" TargetType="NumericUpDown">
|
||||||
<Setter Property="VerticalAlignment" Value="Center" />
|
<Setter Property="VerticalAlignment" Value="Center" />
|
||||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type PathIcon}" TargetType="PathIcon">
|
<ControlTheme x:Key="{x:Type PathIcon}" TargetType="PathIcon">
|
||||||
<Setter Property="Background" Value="Transparent" />
|
<Setter Property="Background" Value="Transparent" />
|
||||||
<Setter Property="Height" Value="{DynamicResource IconElementThemeHeight}" />
|
<Setter Property="Height" Value="{DynamicResource IconElementThemeHeight}" />
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type PopupRoot}" TargetType="PopupRoot">
|
<ControlTheme x:Key="{x:Type PopupRoot}" TargetType="PopupRoot">
|
||||||
<Setter Property="Background" Value="{x:Null}" />
|
<Setter Property="Background" Value="{x:Null}" />
|
||||||
<Setter Property="TransparencyLevelHint" Value="Transparent" />
|
<Setter Property="TransparencyLevelHint" Value="Transparent" />
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters"
|
||||||
xmlns:semiConverters="clr-namespace:Semi.Avalonia.Converters"
|
xmlns:semiConverters="clr-namespace:Semi.Avalonia.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Margin="20" Spacing="20">
|
<StackPanel Margin="20" Spacing="20">
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<ThemeVariantScope RequestedThemeVariant="Dark">
|
<ThemeVariantScope RequestedThemeVariant="Dark">
|
||||||
<StackPanel Background="{DynamicResource SemiBackground0Color}">
|
<StackPanel Background="{DynamicResource SemiBackground0Color}">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="{x:Type RefreshContainer}" TargetType="RefreshContainer">
|
<ControlTheme x:Key="{x:Type RefreshContainer}" TargetType="RefreshContainer">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate>
|
<ControlTemplate>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<StaticResource x:Key="{x:Type RepeatButton}" ResourceKey="{x:Type Button}" />
|
<StaticResource x:Key="{x:Type RepeatButton}" ResourceKey="{x:Type Button}" />
|
||||||
<StaticResource x:Key="SolidRepeatButton" ResourceKey="SolidButton" />
|
<StaticResource x:Key="SolidRepeatButton" ResourceKey="SolidButton" />
|
||||||
<StaticResource x:Key="OutlineRepeatButton" ResourceKey="OutlineButton" />
|
<StaticResource x:Key="OutlineRepeatButton" ResourceKey="OutlineButton" />
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="using:Avalonia.Controls.Converters"
|
xmlns:converters="using:Avalonia.Controls.Converters">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<ScrollBar Width="200" Orientation="Horizontal" />
|
<ScrollBar Width="200" Orientation="Horizontal" />
|
||||||
@@ -311,52 +310,4 @@
|
|||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
<ControlTheme x:Key="SimpleMenuScrollViewer" TargetType="ScrollViewer">
|
|
||||||
<Setter Property="Background" Value="Transparent" />
|
|
||||||
<Setter Property="Template">
|
|
||||||
<ControlTemplate TargetType="ScrollViewer">
|
|
||||||
<DockPanel>
|
|
||||||
<RepeatButton
|
|
||||||
Background="Transparent"
|
|
||||||
BorderThickness="0"
|
|
||||||
Command="{Binding LineUp, RelativeSource={RelativeSource TemplatedParent}}"
|
|
||||||
DockPanel.Dock="Top">
|
|
||||||
<RepeatButton.IsVisible>
|
|
||||||
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}" ConverterParameter="0">
|
|
||||||
<Binding Path="VerticalScrollBarVisibility" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Offset.Y" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Extent.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Viewport.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
</MultiBinding>
|
|
||||||
</RepeatButton.IsVisible>
|
|
||||||
<Path Data="M 0 4 L 8 4 L 4 0 Z" />
|
|
||||||
</RepeatButton>
|
|
||||||
<RepeatButton
|
|
||||||
Background="Transparent"
|
|
||||||
BorderThickness="0"
|
|
||||||
Command="{Binding LineDown, RelativeSource={RelativeSource TemplatedParent}}"
|
|
||||||
DockPanel.Dock="Bottom">
|
|
||||||
<RepeatButton.IsVisible>
|
|
||||||
<MultiBinding Converter="{x:Static converters:MenuScrollingVisibilityConverter.Instance}" ConverterParameter="100">
|
|
||||||
<Binding Path="VerticalScrollBarVisibility" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Offset.Y" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Extent.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
<Binding Path="Viewport.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
|
||||||
</MultiBinding>
|
|
||||||
</RepeatButton.IsVisible>
|
|
||||||
<Path Data="M 0 0 L 4 4 L 8 0 Z" />
|
|
||||||
</RepeatButton>
|
|
||||||
<ScrollContentPresenter Name="PART_ContentPresenter" Margin="{TemplateBinding Padding}" />
|
|
||||||
</DockPanel>
|
|
||||||
</ControlTemplate>
|
|
||||||
</Setter>
|
|
||||||
<Style Selector="^ /template/ RepeatButton > Path">
|
|
||||||
<Setter Property="Fill" Value="{DynamicResource ColorScrollBarButtonDefaultForeground}" />
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style Selector="^ /template/ RepeatButton:pointerover > Path">
|
|
||||||
<Setter Property="Fill" Value="{DynamicResource ColorScrollBarButtonPointeroverForeground}" />
|
|
||||||
</Style>
|
|
||||||
</ControlTheme>
|
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
|
|
||||||
<MenuFlyout x:Key="SelectableTextBlockContextFlyout" Placement="Bottom">
|
<MenuFlyout x:Key="SelectableTextBlockContextFlyout" Placement="Bottom">
|
||||||
<MenuItem
|
<MenuItem
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<ControlTheme x:Key="SliderHorizontalRepeatButton" TargetType="RepeatButton">
|
<ControlTheme x:Key="SliderHorizontalRepeatButton" TargetType="RepeatButton">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="RepeatButton">
|
<ControlTemplate TargetType="RepeatButton">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Width="500" Height="500" Margin="20" Spacing="8">
|
<StackPanel Width="500" Height="500" Margin="20" Spacing="8">
|
||||||
<SplitButton
|
<SplitButton
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
|
|
||||||
<Style Selector="^:right">
|
<Style Selector="^:right">
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate>
|
<ControlTemplate TargetType="SplitView">
|
||||||
<Grid Name="Container" Background="{TemplateBinding Background}">
|
<Grid Name="Container" Background="{TemplateBinding Background}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
@@ -183,79 +183,13 @@
|
|||||||
</Style>
|
</Style>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<Style Selector="^:open">
|
<Style Selector="^:top">
|
||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
|
||||||
<Setter Property="Transitions">
|
|
||||||
<Transitions>
|
|
||||||
<DoubleTransition
|
|
||||||
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
|
||||||
Property="Width"
|
|
||||||
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
|
||||||
</Transitions>
|
|
||||||
</Setter>
|
|
||||||
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
|
||||||
<Setter Property="Transitions">
|
|
||||||
<Transitions>
|
|
||||||
<DoubleTransition
|
|
||||||
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
|
||||||
Property="Opacity"
|
|
||||||
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
|
||||||
</Transitions>
|
|
||||||
</Setter>
|
|
||||||
<Setter Property="Opacity" Value="1.0" />
|
|
||||||
</Style>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style Selector="^:closed">
|
|
||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
|
||||||
<Setter Property="Transitions">
|
|
||||||
<Transitions>
|
|
||||||
<DoubleTransition
|
|
||||||
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
|
||||||
Property="Width"
|
|
||||||
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
|
||||||
</Transitions>
|
|
||||||
</Setter>
|
|
||||||
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
|
||||||
<Setter Property="Transitions">
|
|
||||||
<Transitions>
|
|
||||||
<DoubleTransition
|
|
||||||
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
|
||||||
Property="Opacity"
|
|
||||||
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
|
||||||
</Transitions>
|
|
||||||
</Setter>
|
|
||||||
<Setter Property="Opacity" Value="0.0" />
|
|
||||||
</Style>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style Selector="^:lightDismiss /template/ Rectangle#LightDismissLayer">
|
|
||||||
<Setter Property="Fill" Value="{DynamicResource SplitViewMaskBrush}" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^:overlay:open /template/ Rectangle#LightDismissLayer">
|
|
||||||
<Setter Property="IsVisible" Value="True" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="^:compactoverlay:open /template/ Rectangle#LightDismissLayer">
|
|
||||||
<Setter Property="IsVisible" Value="True" />
|
|
||||||
</Style>
|
|
||||||
</ControlTheme>
|
|
||||||
<ControlTheme x:Key="VerticalSplitView" TargetType="SplitView">
|
|
||||||
<Setter Property="OpenPaneLength" Value="{DynamicResource SplitViewOpenPaneThemeLength}" />
|
|
||||||
<Setter Property="CompactPaneLength" Value="{DynamicResource SplitViewCompactPaneThemeLength}" />
|
|
||||||
<Setter Property="PaneBackground" Value="{DynamicResource SplitViewPaneBackground}" />
|
|
||||||
|
|
||||||
<Style Selector="^:left">
|
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="SplitView">
|
<ControlTemplate TargetType="SplitView">
|
||||||
<Grid Name="Container" Background="{TemplateBinding Background}">
|
<Grid Name="Container" Background="{TemplateBinding Background}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<!-- why is this throwing a binding error? -->
|
<!-- why is this throwing a binding error? -->
|
||||||
<RowDefinition
|
<RowDefinition Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
||||||
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
@@ -293,8 +227,7 @@
|
|||||||
|
|
||||||
<Style Selector="^:overlay">
|
<Style Selector="^:overlay">
|
||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
</Style>
|
</Style>
|
||||||
@@ -308,8 +241,7 @@
|
|||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
@@ -322,8 +254,7 @@
|
|||||||
<!-- RowSpan should be 2 -->
|
<!-- RowSpan should be 2 -->
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
@@ -335,8 +266,322 @@
|
|||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:bottom">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<ControlTemplate TargetType="SplitView">
|
||||||
|
<Grid Name="Container" Background="{TemplateBinding Background}">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<Panel
|
||||||
|
Name="PART_PaneRoot"
|
||||||
|
VerticalAlignment="Bottom"
|
||||||
|
Background="{TemplateBinding PaneBackground}"
|
||||||
|
ClipToBounds="True"
|
||||||
|
ZIndex="100">
|
||||||
|
<ContentPresenter
|
||||||
|
Name="PART_PanePresenter"
|
||||||
|
Content="{TemplateBinding Pane}"
|
||||||
|
ContentTemplate="{TemplateBinding PaneTemplate}" />
|
||||||
|
<Rectangle
|
||||||
|
Name="HCPaneBorder"
|
||||||
|
Height="1"
|
||||||
|
VerticalAlignment="Top"
|
||||||
|
Fill="{DynamicResource SplitViewSeparatorBackground}" />
|
||||||
|
</Panel>
|
||||||
|
|
||||||
|
<Panel Name="ContentRoot">
|
||||||
|
<ContentPresenter
|
||||||
|
Name="PART_ContentPresenter"
|
||||||
|
Content="{TemplateBinding Content}"
|
||||||
|
ContentTemplate="{TemplateBinding ContentTemplate}" />
|
||||||
|
<Rectangle
|
||||||
|
Name="LightDismissLayer"
|
||||||
|
Fill="Transparent"
|
||||||
|
IsVisible="False" />
|
||||||
|
</Panel>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter>
|
||||||
|
|
||||||
|
<Style Selector="^:overlay">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:compactinline">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:compactoverlay">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:inline">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:open">
|
||||||
|
<Style Selector="^:left /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Width"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:right /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Width"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:top /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Height"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:bottom /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Height"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Opacity"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Opacity" Value="1.0" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:closed">
|
||||||
|
<Style Selector="^:left /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Width"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:right /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Width"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:top /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Height"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:bottom /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Height"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
||||||
|
<Setter Property="Transitions">
|
||||||
|
<Transitions>
|
||||||
|
<DoubleTransition
|
||||||
|
Easing="{StaticResource SplitViewPaneAnimationEasing}"
|
||||||
|
Property="Opacity"
|
||||||
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
|
</Transitions>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Opacity" Value="0.0" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:lightDismiss /template/ Rectangle#LightDismissLayer">
|
||||||
|
<Setter Property="Fill" Value="{DynamicResource SplitViewMaskBrush}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:overlay:open /template/ Rectangle#LightDismissLayer">
|
||||||
|
<Setter Property="IsVisible" Value="True" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^:compactoverlay:open /template/ Rectangle#LightDismissLayer">
|
||||||
|
<Setter Property="IsVisible" Value="True" />
|
||||||
|
</Style>
|
||||||
|
</ControlTheme>
|
||||||
|
|
||||||
|
<!-- Obsolete after Avalonia 11.3.7 -->
|
||||||
|
<ControlTheme x:Key="VerticalSplitView" TargetType="SplitView">
|
||||||
|
<Setter Property="OpenPaneLength" Value="{DynamicResource SplitViewOpenPaneThemeLength}" />
|
||||||
|
<Setter Property="CompactPaneLength" Value="{DynamicResource SplitViewCompactPaneThemeLength}" />
|
||||||
|
<Setter Property="PaneBackground" Value="{DynamicResource SplitViewPaneBackground}" />
|
||||||
|
|
||||||
|
<Style Selector="^:left">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<ControlTemplate TargetType="SplitView">
|
||||||
|
<Grid Name="Container" Background="{TemplateBinding Background}">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<!-- why is this throwing a binding error? -->
|
||||||
|
<RowDefinition Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<Panel
|
||||||
|
Name="PART_PaneRoot"
|
||||||
|
VerticalAlignment="Top"
|
||||||
|
Background="{TemplateBinding PaneBackground}"
|
||||||
|
ClipToBounds="True"
|
||||||
|
ZIndex="100">
|
||||||
|
<ContentPresenter
|
||||||
|
Name="PART_PanePresenter"
|
||||||
|
Content="{TemplateBinding Pane}"
|
||||||
|
ContentTemplate="{TemplateBinding PaneTemplate}" />
|
||||||
|
<Rectangle
|
||||||
|
Name="HCPaneBorder"
|
||||||
|
Height="1"
|
||||||
|
VerticalAlignment="Bottom"
|
||||||
|
Fill="{DynamicResource SplitViewSeparatorBackground}" />
|
||||||
|
</Panel>
|
||||||
|
|
||||||
|
<Panel Name="ContentRoot">
|
||||||
|
<ContentPresenter
|
||||||
|
Name="PART_ContentPresenter"
|
||||||
|
Content="{TemplateBinding Content}"
|
||||||
|
ContentTemplate="{TemplateBinding ContentTemplate}" />
|
||||||
|
<Rectangle
|
||||||
|
Name="LightDismissLayer"
|
||||||
|
Fill="Transparent"
|
||||||
|
IsVisible="False" />
|
||||||
|
</Panel>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter>
|
||||||
|
|
||||||
|
<Style Selector="^:overlay">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:compactinline">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:compactoverlay">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<!-- RowSpan should be 2 -->
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
</Style>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style Selector="^:inline">
|
||||||
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
@@ -351,8 +596,7 @@
|
|||||||
<Grid Name="Container" Background="{TemplateBinding Background}">
|
<Grid Name="Container" Background="{TemplateBinding Background}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition
|
<RowDefinition Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
||||||
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.PaneColumnGridLength}" />
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Panel
|
<Panel
|
||||||
@@ -386,8 +630,7 @@
|
|||||||
|
|
||||||
<Style Selector="^:overlay">
|
<Style Selector="^:overlay">
|
||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
<Setter Property="Grid.RowSpan" Value="2" />
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
</Style>
|
</Style>
|
||||||
@@ -401,8 +644,7 @@
|
|||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
@@ -414,8 +656,7 @@
|
|||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Grid.RowSpan" Value="2" />
|
<Setter Property="Grid.RowSpan" Value="2" />
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
@@ -427,8 +668,7 @@
|
|||||||
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
<Style Selector="^ /template/ Panel#PART_PaneRoot">
|
||||||
<Setter Property="Grid.RowSpan" Value="1" />
|
<Setter Property="Grid.RowSpan" Value="1" />
|
||||||
<Setter Property="Grid.Row" Value="1" />
|
<Setter Property="Grid.Row" Value="1" />
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Panel#ContentRoot">
|
<Style Selector="^ /template/ Panel#ContentRoot">
|
||||||
<Setter Property="Grid.Row" Value="0" />
|
<Setter Property="Grid.Row" Value="0" />
|
||||||
@@ -447,8 +687,7 @@
|
|||||||
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
Duration="{StaticResource SplitViewPaneAnimationOpenDuration}" />
|
||||||
</Transitions>
|
</Transitions>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=OpenPaneLength}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
||||||
<Setter Property="Transitions">
|
<Setter Property="Transitions">
|
||||||
@@ -473,8 +712,7 @@
|
|||||||
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
Duration="{StaticResource SplitViewPaneAnimationCloseDuration}" />
|
||||||
</Transitions>
|
</Transitions>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Setter Property="Height"
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
||||||
Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ClosedPaneWidth}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
<Style Selector="^ /template/ Rectangle#LightDismissLayer">
|
||||||
<Setter Property="Transitions">
|
<Setter Property="Transitions">
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Width="400" Height="400" Margin="20">
|
<StackPanel Width="400" Height="400" Margin="20">
|
||||||
<TabControl
|
<TabControl
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel
|
<StackPanel
|
||||||
Width="400"
|
Width="400"
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<ResourceDictionary
|
<ResourceDictionary
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
x:CompileBindings="True">
|
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
<StackPanel Width="400" Height="400" Margin="20">
|
<StackPanel Width="400" Height="400" Margin="20">
|
||||||
<TabStrip Theme="{DynamicResource LineTabStrip}">
|
<TabStrip Theme="{DynamicResource LineTabStrip}">
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user