Vielleicht sind sich einige Freunde über Themen und Skins nicht ganz im Klaren. Lassen Sie uns zunächst Themen und Skins vorstellen.
1. Einleitung:
Schauen Sie sich einfach die Namen „Themen“ und „Skins“ an und Sie werden wissen, wofür sie verwendet werden. Lassen Sie uns nun darüber sprechen, wofür sie verwendet werden (wie kann man noch sagen, ~_~), wenn Sie sie alle kennen? Themen und Seitenstile, ohne unseren Code und unsere Seitendateien zu ändern.
Die Themes-Dateien werden separat in einem App_Themes-Ordner abgelegt und sind vollständig von Ihrem Programm getrennt.
2. So verwenden Sie Themes und Skins:
Schauen wir uns zunächst ein sehr einfaches Beispiel an:
App_Themesdefault1.skin-Dateicode:
<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx: Dateicode:
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
<title>Seite mit angewendetem Beispielthema</title>
</head>
<Körper>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hallo 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" /><br />
</form>
</body>
</html>
Sie können sehen, dass wir keinen Code zur Steuerung des Stils in default.aspx geschrieben haben, aber wenn wir ihn ausführen, stellen wir fest, dass die Wörter auf dem Etikett fettrot geworden sind. Dies ist das einfachste Beispiel für ein Thema.
App_Themes-Ordner:
Der Ordner „App_Themes“ befindet sich im Stammverzeichnis des Programms. Der Unterordner „App_Themes“ kann mehrere .skin- und .css-Dateien enthalten. In der Abbildung unten werden zwei Themes mit den Namen „default“ und „default2“ erstellt:
Verwenden Sie Themen
1. Theme auf eine Seite anwenden:
Wenn Sie ein Design auf eine bestimmte Seite anwenden möchten, ändern Sie <%@ Page Theme="..." %> direkt in der ASPX-Datei. Wenn Sie beispielsweise das Design default2 auf diese Seite anwenden möchten, legen Sie <% fest. @ Page Theme="default2" %> OK
2. Wenden Sie dasselbe Design auf alle Seiten an:
Wenn Sie auf allen Seiten dasselbe Theme verwenden möchten, fügen Sie den Satz <pages theme="..."/> unter dem Knoten <system.web> in web.config
3 hinzu. Lassen Sie das Steuerelement kein Theme anwenden:
Im ersten Beispiel haben wir gesehen, dass sich die Stile von zwei Labels geändert haben, was bedeutet, dass der Stil in der .skin-Datei für alle Labels auf der Seite wirksam geworden ist. Aber manchmal möchten wir, dass ein bestimmtes Label den Stil in .skin nicht anwendet. In diesem Fall müssen Sie nur die EnableTheming-Eigenschaft des Labels auf false setzen.
Möglicherweise möchten Sie auch, dass verschiedene Beschriftungen unterschiedliche Stile anzeigen. Sie müssen nur das SkinID-Attribut der Beschriftung festlegen. Siehe das Beispiel unten:
App_Themesdefault1.skin
<asp:label runat="server" font-bold="true" forecolor="Red" />
<asp:label runat="server" SkinID="Blue" font-bold="true" forecolor="blue" />
deafult.aspx
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
<title>Seite mit angewendetem Beispielthema</title>
</head>
<Körper>
<form id="form1" runat="server">
<asp:Label ID="Label2" runat="server" Text="Hello 2" SkinID="Blue" /><br />
<asp:Label ID="Label3" runat="server" Text="Hello 3" /><br />
</form>
</body>
</html>
Nach dem Ausführen werden Sie feststellen, dass die Anzeigestile der beiden Etiketten unterschiedlich sind.
4. Andere Methoden:
Wie bereits erwähnt, überschreibt die Verwendung von <%@ Page Theme="..." %> im ASPX-Dateiheader zur Verwendung des Designs und die Verwendung dieser Methode zum Anwenden des Stils im Design den Steuerattributstil, den Sie in ASPX geschrieben haben. Zum Beispiel:
App_Themesdefault1.skin
<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />
default.aspx
<%@ Page Language="C#" Theme="default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http ://www.w3.org/1999/xhtml ">
<head id="Head1" runat="server">
</head>
<Körper>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Hallo 1" /><br />
<asp:Label ID="Label2" runat="server" Text="Hello 2" ForeColor="blue" />
</form>
</body>
</html>
Als Ergebnis der Operation ist die Vordergrundfarbe aller Beschriftungen rot.
Wenn Sie <%@ Page StyleSheetTheme="..." %> zum Anwenden eines Themas verwenden, wird das Stilattribut, das Sie in die ASPX-Datei geschrieben haben, nicht überschrieben:
Die Reihenfolge, in der das Steuerelement das Stilattribut anwendet, ist wie folgt:
a. Stil, auf den StyleSheetTheme verweist
b. Durch Code festgelegte Steuereigenschaften (StyleSheetTheme überschreiben)
c. Der von Theme referenzierte Stil (der die ersten beiden
Themen abdeckt) enthält CSS:
.css-Dateien können auch in Themes verwendet werden. Wenn Sie die .css-Datei in einem Theme-Verzeichnis ablegen, wird Ihre .css-Datei automatisch auf die Seite angewendet, die dieses Theme verwendet.
3. Der Hintergrundcode kann den Skin der Website leicht ändern .
Was ich oben erwähnt habe, ist das Anwenden von Themen in ASPX-Dateien oder web.config. Es ist jedoch offensichtlich unpraktisch, die oben beschriebene Methode zum Ändern von Skins auf einer Website wie einem Blog zu verwenden, bei dem jeder Benutzer einen anderen Skin hat.
Im Folgenden wird erläutert, wie das Thema im Hintergrundcode dynamisch referenziert wird, um die obige Situation zu lösen. Das Thema muss zum frühesten Zeitpunkt angewendet werden, wenn die Seite angefordert wird. Daher müssen wir Code in das Page_PreInit-Ereignis schreiben , nur ein Satz:
Page.Theme = "...";
Hier müssen wir nur die von jedem Benutzer festgelegten unterschiedlichen Themennamen aus der Datenbank lesen, um leicht zu erkennen, dass jeder Benutzer einen anderen Skin hat.
------------------------------------------
Das sind alles persönliche Meinungen und Erfahrungen. Wenn etwas nicht stimmt, geben Sie mir bitte Ihren Rat.