Lag et tilpasset tema for universelle apper i Windows 10
Selv med temastøtte er tilpasningsalternativene i Windows 10 begrenset. Du kan bruke et tredjepartstema som endrer utseendet til de visuelle UI-elementene og vindusrammen litt, men det vil ikke påvirke Universal-apper. Ut av esken, Windows 10 støtter bare lyse og mørke temaer for universelle apper. Her er hvordan du kan lage ditt eget tilpassede tema.
Annonse
Reddit bruker "mcdenis" fant en relativt enkel og pålitelig metode for å fullt ut tilpasse standardtemaet som brukes av Universal-apper i Windows 10. Ved å bruke metoden hans er det mulig å endre utseendet til alle UWPs vanlige kontroller. Her er et eksempel på tilpasningene som er brukt:
Hvordan lage et tilpasset tema for universelle apper i Windows 10
Før du fortsetter, må du installere disse verktøyene og appene:
- Visual Studio 2015 Express med SDK for samme Windows-bygg som du bruker. Husk at Microsoft ofte ikke gir ut SDK-er for Insider-bygg. Se denne linken.
- Ressurshacker.
Del 1: Lag ditt tilpassede XAML-tema
- Lag en kopi av standardtemaet på skrivebordet. Forutsatt at du bruker build 10240 og standard installasjonssted for alt, er dens fulle bane:
C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.10240.0\Generic\themeresources.xaml
- Åpne den nyopprettede kopien med Visual Studio. Filen er delt inn i tre seksjoner. Den første definerer det mørke temaet (referert til som "standard"-temaet), det andre definerer det lyse temaet og det tredje definerer høykontrast-temaet. La oss si at du vil endre fargen på Edges verktøylinje når du bruker det mørke temaet. Identifiser først nøkkelen til ressursen som definerer den. Du kan bruke denne veiledningen:
I dette tilfellet er nøkkelen "SystemChromeMediumLowColor" - Finn den første forekomsten av den nøkkelen i themeresources.xaml (Jeg spesifiserer "den første instansen" fordi nøkkelen også vises senere i filen for lystemaet og høykontrasttemaet).
- Erstatt hex-verdien i fargeelementet med ARGB-hex-verdien for fargen du velger. Til slutt lagrer du endringene.
Del 2: Kompiler temaet ditt til en xbf-fil
I Visual Studio oppretter du et nytt C#- eller Visual Basic Universal-appprosjekt. Bruk Solution Explorer-ruten, lim inn en kopi av det modifiserte XAML-temaet i prosjektet.
Deretter setter du byggemodusen til Release og prosessorarkitekturen til den samme som Windows-installasjonen.
trykk Ctrl + Shift + B å bygge din løsning.
Når det er gjort, høyreklikk på prosjektnavnet ditt i Solution Explorer og velg "Åpne mappe i filutforsker". Naviger til bin -> x86 eller x64 -> Slipp og kopier filen kalt "themeresources.xbf" på skrivebordet.
Til slutt endrer du filtypen til kopien fra ".xbf" til ".rc".
Del 3: Erstatt standardtemaet med ditt egendefinerte tema
-
Ta eierskap av følgende fil og lag en kopi av den på skrivebordet:
%windir%/System32/Windows. UI.XAML.Resources.dll
- Åpne kopien i Resource Hacker
- I navigasjonsruten, naviger til 256 -> themeresource.xbf: 1024.
- I menylinjen klikker du på Handling -> Erstatt ressurs.
- I dialogboksen som vises, klikk på "Velg fil"-knappen og åpne filen kalt "themeresources.rc" som er på skrivebordet ditt.
- Klikk på "Erstatt"-knappen.
- Til slutt lagrer du endringene (Ctrl + S).
- Gi nytt navn til opprinnelig fil til Windows. UI.XAML.Resources.dll.old og flytt den modifiserte filen som er på skrivebordet ditt i system32 mappe. Til slutt, logg ut og logg inn igjen. Det nye temaet skal nå tas i bruk.
Hvis du vil endre en standard kontrollmal (som er nødvendig for å gjøre mer komplekse endringer), er prosessen litt mer komplisert, men lik:
Du må ta den originale kontrollmalen, endre den, legge den i en tom ressursordbok, lage en xbf-fil fra den og erstatte den relaterte ressursen i Windows. UI.XAML.Resources.dll.
Husk at systemfilendringer kan forårsake uventet oppførsel av operativsystemet. En dag vil også en oppdatering for Windows 10 som påvirker filene du endret, gjenopprette standardtemaet, så du må gjenta trinnene ovenfor en gang til.
Studiepoeng: mcdenis. Takk til @FlatDesignSucks for dette tipset.