14. marts 2006 - 21:56
#1
Følgende virker i VS.NET 2003 (har ikke prøvet i 2002, men i 2003 var der heller ikke nogen nem måde at få XP look på):
Først skal du sætte egenskaben FlatStyle til System på alle dine controls, hvor det er muligt (dvs. knapper, labels, checkboxes, radiobuttons mv.)
Herefter skal du oprette en ny tekst-fil i samme mappe, som din .exe fil. Placer følgende XML i filen:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Winweb.<Executable Name>"
type="win32"
/>
<description>.NET control deployment tool</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Gem filen, og omdøb den til <Executable Name>.exe.manifest.
HUSK at udskifte <Executable Name> i både filens indhold og filens navn, til navnet på din .exe fil - UDEN ".exe" ... Dvs. hvis din exe-fil hedder "MinApplikation.exe", skal du udskifte "<Executable Name>" med "MinApplikation" i ovenstående. Derved ville der fx komme til at stå
name="Microsoft.Winweb.MinApplikation"
i linie 6 af .manifest filen, og .manifest filens navn ville være:
MinApplikation.exe.manifest
Når du kører programmet herefter, og .manifest filen ligger i samme mappe som .exe-filen, skulle den gerne have fået XP look.
For at undgå at skulle have den .manifest fil liggende ved siden af .exe filen, kan du importere den direkte i din .exe fil. Gør dog først dette, når du har kompileret den endelige udgave af din applikation, da den importerede .manifest fil vil blive fjernet, hver gang du rekompilerer.
For at importere .manifest filen, skal du
1) Åbne .exe filen direkte i Visual Studio .NET. Du vil her se en mindre mappe struktur. Højre-klik et sted i de hvide område og vælg "Add Resource...".
2) I den nye dialog, der åbner, klik "Import..."
3) Udpeg .manifest filen du lavede og tryk "Open"
4) Der åbner nu endnu en dialog. Indtast "RT_MANIFEST" i det lille tekst-felt og tryk OK.
5) Du vil nu få vist indholdet af .manifest filen. Luk denne visning, så du igen ser den førnævnte mappestruktur. Der er kommet en ny mappe der hedder "RT_MANIFEST" og under denne et punkt der vist nok hedder "101"
6) Markér "101" og indtast tallet 1 i egenskaben "ID" for det markerede element. (Hvis properties vinduet ikke er åbent, højre-klik på "101" og vælg "Properties")
7) Gem din .exe fil, og se om du får XP look, selv, når .manifest filen IKKE ligger i samme mappe.
Håber du kan få det til at virke :-)