Programm-Icon an allen Stellen gesetzt
Das Projekt setzte nirgends ein Icon - weder <ApplicationIcon> noch Window.Icon, und in der Web-UI kein Favicon. Auf dem Server trugen dadurch alle unsere Anwendungen dasselbe generische Platzhalter-Icon und waren in Explorer und Taskleiste nicht auseinanderzuhalten. Assets/predictalytics.ico ist die einzige Quelle, alles andere daraus abgeleitet (Ableitung und Neuerzeugung: Assets/README.md): * <ApplicationIcon> im Shell-Projekt - Explorer, Taskleiste, Task-Manager * Window.Icon in MainWindow und LicenseWindow; die im Code gebauten Dialoge erben es vom Besitzerfenster * favicon.ico, apple-touch-icon.png und icon-192/512.png in der Web-UI, verlinkt aus index.html, landing.html und docs.html Fuer das Fenstericon bewusst PNG statt ICO: Skia dekodiert kein ICO, unter Linux waere der Fensteraufbau sonst gescheitert. Die .ico bleibt per Exclude aus dem AvaloniaResource-Glob - sie geht ueber <ApplicationIcon> in die Programmdatei und muss nicht zusaetzlich in die Assembly. Der XAML-Compiler prueft Asset-URIs nicht (ein falscher Pfad baut fehlerfrei durch), deshalb gegen die gebaute Assembly verifiziert: beide relativen URIs loesen auf, WindowIcon dekodiert sie, der Gegentest mit einem nicht vorhandenen Pfad schlaegt fehl. Bugtracker: #418 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Programm-Icon
|
||||
|
||||
`predictalytics.ico` ist die **einzige Quelle**. Alles andere ist daraus abgeleitet:
|
||||
|
||||
| Datei | Wozu |
|
||||
|---|---|
|
||||
| `predictalytics.ico` (9 Größen, 16–256) | `<ApplicationIcon>` in `Predictalytics.Shell.csproj` — Explorer, Taskleiste, Task-Manager unter Windows |
|
||||
| `predictalytics.png` (256) | `Window.Icon` in `MainWindow.axaml` und `LicenseWindow.axaml`; Dialoge erben es vom Besitzerfenster. Bewusst PNG, weil Skia unter Linux kein ICO dekodiert |
|
||||
| `Predictalytics.Api/wwwroot/favicon.ico` (16–48) | Browser-Tab der Web-UI |
|
||||
| `Predictalytics.Api/wwwroot/apple-touch-icon.png` (180) | iOS-Homescreen |
|
||||
| `Predictalytics.Api/wwwroot/icon-192.png`, `icon-512.png` | Verlinkt aus `index.html`, `landing.html`, `docs.html` |
|
||||
|
||||
Ersetzt du das Icon, tausche `predictalytics.ico` aus und erzeuge den Rest neu:
|
||||
|
||||
```bash
|
||||
python - <<'PY'
|
||||
from PIL import Image
|
||||
src = 'src/Predictalytics.Shell/Assets/predictalytics.ico'
|
||||
im = Image.open(src); im.size = (256, 256); im.load(); im = im.convert('RGBA')
|
||||
im.save('src/Predictalytics.Shell/Assets/predictalytics.png', optimize=True)
|
||||
im.save('src/Predictalytics.Api/wwwroot/favicon.ico',
|
||||
sizes=[(16,16),(24,24),(32,32),(48,48)])
|
||||
for n, name in [(180,'apple-touch-icon.png'), (192,'icon-192.png'), (512,'icon-512.png')]:
|
||||
im.resize((n,n), Image.LANCZOS).save(f'src/Predictalytics.Api/wwwroot/{name}', optimize=True)
|
||||
PY
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
Reference in New Issue
Block a user