Formate
Aktualisiert: November 2007
Jedes ASP.NET Mobile-Steuerelement stellt Stileigenschaften bereit, mit denen Sie die Wiedergabe des Steuerelements anpassen können. Stile können nach Wunsch gruppiert werden, um Stilkonsistenz zwischen verschiedenen Elementen einer Seite herzustellen. Mit einem StyleSheet-Steuerelement oder einem Style-Element können Sie auf die spezifischen Eigenschaften von Steuerelement- und Gerätefunktionen zugreifen.
Hinweis: |
---|
Es ist nicht sichergestellt, dass Einstellungen von Stileigenschaften berücksichtigt werden. Wenn ein Zielgerät einen bestimmten Stil nicht unterstützt, ignoriert ASP.NET den Stil oder ersetzt ihn durch einen anderen. |
Stilvererbung
Steuerelemente erben die Stileigenschaften ihres Containers, wenn Sie für sie weder direkt noch indirekt durch einen Stilverweis explizit Stileigenschaften im Steuerelement angeben. Die meisten Stileigenschaften sind standardmäßig auf NULL oder einen Enumerationswert von NotSet festgelegt. Dies erleichtert es, explizit festgelegte Stileigenschaften von nicht festgelegten zu unterscheiden.
Explizites Deklarieren von Stilen
Es gibt zwei Möglichkeiten, explizit einen Stil für ein Steuerelement zu deklarieren. Eine Möglichkeit ist, eine Stileigenschaft festzulegen. Angenommen, Sie erstellen ein Formular und fügen ihm ein Label-Steuerelement hinzu. (Die Bezeichnung ist dann ein untergeordnetes Steuerelement des Formulars.) Wenn Sie anschließend die Font-Name-Eigenschaft der Beschriftung auf "Arial" festlegen, verwendet die Beschriftung die Schriftart Arial.
Die andere Möglichkeit, einen Stil für ein untergeordnetes Steuerelement explizit festzulegen, ist, die StyleReference-Eigenschaft des Steuerelements festzulegen.
Festlegen von Stilen mit einem DeviceSpecific-Steuerelement
Sie können Stileigenschaften auch durch ein DeviceSpecific-Steuerelement festlegen. Das folgende Beispiel zeigt eine Beschriftung, die auf den meisten Geräten kursiv, auf einem Desktopgerät aber fett formatiert dargestellt wird.
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" %>
<script language="C#" runat="server">
// A custom method to determine if the page
// is displayed on a mobile device
public bool IsDesktop(System.Web.Mobile.MobileCapabilities
capabilities, String argument)
{
return !capabilities.IsMobileDevice;
}
</script>
<Mobile:StyleSheet runat="server">
<Style Name="ListStyle" Font-Italic="true">
<DeviceSpecific>
<Choice Filter="IsDesktop" Font-Italic="false"
Font-Bold="true" />
</DeviceSpecific>
</Style>
</Mobile:StyleSheet>
<Mobile:Form runat=server>
<Mobile:Label id="list1" runat=server StyleReference="ListStyle">
Here is some text
</Mobile:Label>
</Mobile:Form>
Suchalgorithmus für Stile, auf die verwiesen wird
Wenn mithilfe der StyleReference-Eigenschaft auf einen Stil verwiesen wird, hält ASP.NET eine bestimmte Prüfreihenfolge ein, um zu bestimmten, welcher Stil angewendet wird. Für ein untergeordnetes Steuerelement (ein Steuerelement in einem übergeordneten Containersteuerelement) werden die Regeln zur Bestimmung der Merkmale des untergeordneten Elements in der folgenden Liste beschrieben, wobei Font-Size als Beispiel dient:
Wenn das Font-Size-Attribut explizit für ein untergeordnetes Steuerelement festgelegt wurde, verwendet das Steuerelement diese Einstellung.
Wenn die StyleReference-Eigenschaft des untergeordneten Steuerelements festgelegt wird (z. B. myChild.StyleReference = someStyle), verwendet das Steuerelement den Wert des Font-Size-Attributs vom Style-Element, auf das verwiesen wird (z. B. someStyle). Das untergeordnete Steuerelement greift auf den Wert zu, indem es folgendermaßen vorgeht:
Das untergeordnete Element sucht zunächst im Stylesheet der aktuellen MobilePage-Instanz nach dem Stil, auf den verwiesen wird.
Wenn der Stil im Stylesheet der Seite nicht vorhanden ist, wird auf das Standardstylesheet des Systems verwiesen.
Wenn der Stil in keinem der beiden Stylesheets vorhanden ist, wird ein Laufzeitfehler generiert.
Wenn der Stil weder direkt noch indirekt verfügbar ist, wurde die StyleReference-Eigenschaft nicht festgelegt, und das untergeordnete Steuerelement erhält den Wert seines Font-Size-Attributs, indem diese Vorgehensweise rekursiv auf das übergeordnete Steuerelement angewendet wird.
Wenn die Rekursion die oberste Ebene der Steuerelementhierarchie erreicht, ohne einen expliziten Wert für das Font-Size-Attribut zu finden, wird für das Steuerelement der Standardschriftgrad verwendet.
Dieser Algorithmus erlaubt die Verwendung unterschiedlicher Stile, auf die durch verschiedene Steuerelemente verwiesen werden kann. Der Algorithmus unterstützt die Vererbung aus Containersteuerelementen und hält die Standardregeln für die Codierung und Logik ein.
Ausnahmen für den Suchalgorithmus
Es gibt zwei Ausnahmen vom Suchalgorithmus:
Eine Hintergrundfarbe erhält ihren Wert nicht vom übergeordneten Objekt. (Dies ist mit dem Verhalten von Cascading Stylesheets konsistent.)
DeviceSpecific-Steuerelemente erben keine Werte vom übergeordneten Steuerelement. Ein DeviceSpecific-Steuerelement wird normalerweise explizit für ein bestimmtes Steuerelement oder einen Steuerelementtyp erstellt.
Stylesheets
ASP.NET Mobile-Steuerelemente besitzen ein Standardstylesheet, mit dem eine begrenzte Anzahl von Stilen festgelegt wird. Weitere Informationen finden Sie unter StyleSheet. Wenn Sie eigene Stile anwenden möchten, können Sie die Werte für die Standardstile problemlos überschreiben. In einem Stylesheet können beliebig viele Deklarationen von <Style>-Elementen enthalten sein. Jedes <Style>-Element ist durch eine eindeutige Name-Eigenschaft gekennzeichnet. Sie können die StyleReference-Eigenschaft eines anderen Steuerelements auf die Name-Eigenschaft festlegen und so auf seinen Stil verweisen. Sie können dieses Verfahren auch verwenden, um von einem Stil auf einen anderen zu verweisen.
Externe Stylesheets
Sie können ein externes Stylesheet definieren, um es für mehrere Steuerelemente zu verwenden. Diese Vorgehensweise ist empfehlenswert, wenn Sie auf mehreren Seiten dieselben Stile verwenden möchten. Zum Erstellen eines externen Stylesheets erstellen Sie ein Benutzersteuerelement in einer ASCX-Datei und platzieren in diesem Steuerelement ein einzelnes StyleSheet-Steuerelement mit mehreren Stilen. Wenn Sie anschließend auf diese Datei verweisen möchten, platzieren Sie ein StyleSheet-Steuerelement auf einer mobilen Seite und legen die ReferencePath-Eigenschaft des Steuerelements auf den relativen URL des Benutzersteuerelements fest.
Implementierung von externen Stylesheets
Das Implementieren eines externen Stylesheets wird in drei Schritten ausgeführt:
Schreiben Sie ein Microsoft ASP.NET Mobile-Benutzersteuerelement in einer ASCX-Datei.
Legen Sie ein einzelnes Stylesheet in der ASCX-Datei ab, und fügen Sie die gewünschten <Style>-Elemente hinzu.
Deklarieren Sie ein Stylesheet, und legen Sie seine ReferencePath-Eigenschaft auf den ASCX-Dateinamen des Benutzersteuerelements für jede mobile Seite fest, auf der Sie das externe Stylesheet verwenden möchten.
Dem ASP.NET-Seitenframework für das Stylesheet auf der mobilen Seite stehen zur Laufzeit alle im externen Stylesheet deklarierten Stile zur Verfügung. Weitere Informationen über Benutzersteuerelemente finden Sie unter Benutzersteuerelemente.
Eigenschaften von Style-Objekten und der Style-Klassen
Ein Style-Objekt ist kein echtes Steuerelement und erbt nicht von der MobileControl-Basisklasse. Auf einer Seite kann es nur innerhalb eines StyleSheet-Steuerelements mit einem <Style>-Element deklariert werden.
Die Style-Basisklasse enthält Stileigenschaften, die allen mobilen Steuerelementen gemeinsam sind. Klassen, die von der Style-Klasse erben, enthalten zusätzliche Stileigenschaften speziell für das jeweils zugeordnete Steuerelement.
Jedes MobileControl enthält intern ein Style-Objekt. Dieses Style-Objekt wird jedoch nicht über öffentliche Member verfügbar gemacht. Stattdessen besitzt das MobileControl für jede Stileigenschaft eine öffentlich zugängliche Eigenschaft, die intern auf den privaten Stil verweist. Deshalb macht ein MobileControl Stileigenschaften wie Font, ForeColor und Wrapping direkt verfügbar.
Organisation von Stilen
Sie können Stile in einem StyleSheet-Steuerelement organisieren. In einem Stylesheet können Sie eine beliebige Anzahl von Stilobjekten deklarieren. Stile werden genauso deklariert wie Steuerelemente, nur dass ein runat=server-Attribut nicht erforderlich ist. Weitere Informationen finden Sie unter <Style>-Element.
Ein Stil kann seine Eigenschaften von einem anderen Stil im Stylesheet erben. Dazu wird seine StyleReference-Eigenschaft auf den Namen des übergeordneten Stils festgelegt. Der Gültigkeitsbereich hierbei ist die mobile Seite. Das bedeutet, dass nur Verweise auf Stile im Stylesheet auf derselben mobilen Seite zulässig sind. Damit ein Steuerelement die Stile aus einem Stilobjekt im Stylesheet übernimmt, legen Sie die StyleReference-Eigenschaft seines Stilobjekts auf den Namen des Stils fest. Dazu deklarieren Sie entweder das StyleReference-Attribut auf einer ASP.NET Mobile-Webseite, oder Sie legen die StyleReference-Eigenschaft programmgesteuert fest.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Implementieren eines neuen Formats
Konzepte
Weitere Ressourcen
Erstellen von benutzerdefinierten mobilen Steuerelementen
Entwurfs- und Wiedergabekonzepte für ASP.NET Mobile-Steuerelemente