September 2018
Band 33, Nummer 9
Dieser Artikel wurde maschinell übersetzt.
Xamarin.Forms - Xamarin-Produktivität und Verbesserungen für Visual Studio 2017
Durch Alessandro Del Del | September 2018
Entwicklung mobiler Apps mit Xamarin und Visual Studio, Windows und dem Mac ist entscheidend für Microsoft, das umfangreiche Investitionen zum Verbessern der Qualität und Leistungsfähigkeit von der mobile-Entwicklungstools und Plattformen vorgenommen hat. Auf der Konferenz Build 2018 im Mai stellte Microsoft eine neue Generation von Tools für die Entwicklung von plattformübergreifenden app mit c#, mit dem Schwerpunkt auf Produktivität und Leistung vor. Dazu gehören Updates in die Xamarin-Tools für Visual Studio 2017, neue Features und Verbesserungen in Visual Studio für Mac und der Version von Xamarin.Forms 3.0.
In diesem Artikel beschreibe ich die Neuigkeiten für Entwickler mobiler Apps, die Arbeit mit c# und Xamarin in Visual Studio 2017, durchlaufen die Features und Updates, die Probleme gelöst werden, die in früheren Versionen vorhanden waren. Sie benötigen Visual Studio 2017 Version 15.7.3 oder höher, verwenden Sie die neuen Features, aber ich empfehle die Installation der neuesten verfügbaren Version (15.7.4 derzeit). Ich beginne mit produktivitätsupdates und -Erweiterungen für Visual Studio 2017, und klicken Sie dann beschreibe Neues bei der plattformunterstützung für iOS und Android.
Visual Studio 2017-Tools für Xamarin
Visual Studio 2017-IDE wurde vor kurzem mit neuen und aktualisierten Tools für Xamarin verbessert, einschließlich XAML-Editor aktualisiert, integrierte Tools für iOS und Android-Updates, erweiterte plattformunterstützung und neue Versionen von Xamarin.Forms. Diese Verbesserungen sind äußerst wichtig, und verdienen eine gründliche Besprechung, damit der erste Teil dieses Artikels mit Features vertraut machen, die sowohl die integrierten plattformunterstützung als auch der codeerstellung verknüpft sind.
XAML-Editor-Updates arbeiten mit Xamarin.Forms Entwickler profitieren von den neuen XAML-Code-Editor jetzt durch die gleiche Engine unterstützt wird, von der Windows-Verwaltungsinstrumentation (Windows Presentation Foundation, WFP) und die universelle Windows-Plattform (UWP) gesteuert. Dies ist äußerst wichtig, verschiedene Ursachen haben:
- Vollständige und umfassende IntelliSense-Unterstützung: Frühere Versionen von IntelliSense können das Schreiben von XAML vornehmen möchten, oft schwierigen Markup. Die neue Version fügt Linting, Fuzzy- und übereinstimmende Teilzeichenfolge, die ich beschreibe, im Detail.
- Verbesserte Unterstützung zum Binden von Ausdrücken: IntelliSense jetzt listet verfügbaren Objekte für Bindungen, die basierend auf der {Binding}-Markuperweiterung sowie die verfügbare Ressourcen bei Verwendung die Markuperweiterung {StaticResource}.
- Schnellaktionen und Refactorings: Glühbirne gekennzeichnete Vorschläge sind jetzt für XAML in Xamarin.Forms verfügbar, genau, wie sie für WPF und UWP, vereinfacht die XML-Namespaces zu beheben, Entfernen nicht verwendete Namespaces und Organisieren von Code mit kontextabhängige Vorschläge wurden.
Das Feature Fuzzyübereinstimmung bietet einen Algorithmus, der Ihnen hilft finden Sie entsprechende vervollständigungen, die basierend auf Ihrer Eingabe. Wenn Sie Stk geben und dann auf Tab drücken, wird IntelliSense z. B. einen StackLayout-Tag hinzufügen. Übereinstimmung von untergeordneten Zeichenfolgen enthält eine Liste der möglichen vervollständigungen, während der Eingabe in ein Steuerelementname. Z. B. Wenn Sie Layout eingeben, bietet IntelliSense die StackLayout "," AbsoluteLayout "und" RelativeLayout als möglichen vervollständigungen sowie schließende Tags basierend auf der gleichen eingeben (siehe Abbildung1). Dieses Feature ist besonders nützlich, wenn Sie auf ein Steuerelementname teilweise.
Abbildung 1 Übereinstimmung von untergeordneten Zeichenfolgen in der XAML-Editor für Xamarin.Forms
Ein weiteres interessantes Feature zum Zeichenfolgenabgleich von ist CamelCase übereinstimmt, die Verknüpfungen, die auf Grundlage von CamelCase-Typen bereitstellt. Wenn Sie RL geben, und drücken Sie dann die Registerkarte ", fügt der Editor z. B. eine RelativeLayout-Tag ein. Mit Lint-Funktion gibt der Code-Editor sofort einige Codeprobleme, z. B. wenn eine Eigenschaft mehr als einmal angegeben wurde.
Viele Leser wie nützliche Features wie Glühbirnen, schnelle Aktionen kennen, und Vorschläge werden von seiner Erfahrung mit der C#-Code-Editor und XAML-Code-Editor in WPF und UWP. Diese Funktionen stehen jetzt in Xamarin.Forms zur Verfügung. Beispielsweise wenn ein Codeproblem erkannt wird, Sie können klicken Sie auf das Glühbirnensymbol klicken (oder drücken Sie STRG +.) und Visual Studio werden mögliche Korrekturen anzeigen, wie Sie in sehen abbildung2, wobei der Code-Editor einen fehlenden XML-Namespace erkennt und schlägt vor Hinzufügen der geeigneten Namespace-Deklaration.
Abbildung 2 die Glühbirne bietet Inline-schnelle Aktionen für Codeprobleme
Sie können die Glühbirne und schnelle Aktionen verwenden, um nicht verwendete Namespaces entfernen und Sortieren von Namespaces, wodurch Ihre Code übersichtlicher zu halten. IntelliSense-Funktionalität ist auch die vollständige Unterstützung nun für das Binden von Ausdrücken mit Markuperweiterungen. Z. B. der Fall wäre eine PersonViewModel-Klasse, die Sie verwenden möchten als den Bindungskontext für die Benutzeroberfläche und ist als eine lokale Ressource, IntelliSense wird deklariert, dann können Sie den Bindungsausdruck zu erstellen, indem Sie mit der Liste der verfügbaren Ressourcen.
Mit einem Bindungskontext einrichten können IntelliSense bei der Erstellung von Bindungsausdrücken zeigen eine Liste der Eigenschaften, die von das gebundene Objekt verfügbar gemacht werden. Abbildung 3 enthält ein Beispiel, in denen Sie auch eine Eigenschaft namens "FullName" sehen, in das Ansichtsmodell definiert.
Abbildung 3: IntelliSense erleichtert es, erstellen Sie Bindungsausdrücke
Sprengen Sie Bindung Verbesserungen an beliebten vorhandenen Funktionen wie "Definition einsehen" und Gehe zu Definition, die jetzt in der Xamarin.Forms-XAML-Editor sehr viel zuverlässiger sind. Beide Funktionen Waren in der Tat problematisch, bevor Sie die neuesten Updates für Visual Studio. Jetzt können Sie schnell auf die Definition eines Objekts oder in XAML oder C#-Code definierte Ressource Navigieren der Aufwand für das Durchsuchen von Code manuell entfernen. "Definition einsehen" öffnet eine interaktive Popupfenster direkt in das aktive Editor-Fenster, während Gehe zu Definition ein separaten Editor-Fenster, das auf die gewünschte Ressource wird geöffnet.
Xamarin.iOS-Remoteupdate der XAML-Bearbeitungsfunktionen ist nicht der einzige Bereich, in denen Microsoft arbeitet auf um Produktivität zu steigern. Die Tools für Xamarin.iOS wurde ebenfalls verbessert.
Wie Sie wissen, erfordert das Erstellen von apps für iOS mit Xamarin in Visual Studio 2017, dass die gleiche Version von Xamarin.iOS SDK auf Ihrem Windows-PC und die Mac-Computer installiert werden. War ein Versionskonflikt vor, Visual Studio hat eine Warnung gemeldet, und mussten Sie Ihren Mac manuell aktualisieren. Dies ist nicht mehr erforderlich. Visual Studio 2017 bietet jetzt die neueste Version von Xamarin.iOS SDK auf dem Mac in Ihrem Auftrag zu installieren. Klicken Sie einfach klicken Sie auf installieren, die im Paar, das Mac-Dialogfeld und warten Sie, bis das Update abgeschlossen.
Xamarin-Tools für die automatische iOS Provisioning Erstellen von apps für iOS erfordert einige Preliminary Schritte, die sehr kompliziert sein kann. Zusätzlich zur Registrierung im Apple Developer Program, der erforderlich ist, um Apple-Entwicklerkonto anmelden, und Veröffentlichen der App-Store-apps zu aktivieren, müssen Sie Ihr iOS-Gerät bereitstellen. iOS-Bereitstellung ermöglicht Ihnen das Bereitstellen und Testen Sie Ihre app auf einem Gerät. iOS-Bereitstellung erfolgt in der Regel über Xcode auf dem Mac. Fügen kurz, iOS erfordert Bereitstellung:
- Erstellen Sie ein Entwicklungsteam: Dies schließt die Liste der Apple-entwicklerkonten in das Entwicklungsteam, sodass sie zum Signieren und Veröffentlichen einer app angegeben.
- Richten Sie bereitstellungsprofile: Ein Bereitstellungsprofil wird in die kompilierte app-Paket gebündelt und enthält drei Dinge: einen eindeutigen app-Bezeichner (ID der App), eine oder mehrere entwicklungszertifikate erforderlich, um das Testen einer app auf physischen Geräten und eine eindeutige Geräte-IDs (UDI)-Liste, die auflistet Geräte, die zum Ausführen einer app zulässig.
- Erstellen Sie die Signaturzertifikate: Alle apps müssen signiert werden, bevor diese auf einem iOS-Gerät selbst für die Entwicklung ausführen können, sodass ein Signaturzertifikat erforderlich ist. Jede Developer-Konto (z. B. Entwicklung und Veröffentlichung) abhängig von der Ebene des Abonnements stehen verschiedene Arten von Zertifikaten.
Das Xamarin-Team bei Microsoft nützliches Dokument, die erklärt, wie Sie zum Einstieg in die Bereitstellung von iOS-erstellt hat (bit.ly/2NhzO0O), aber die Realität ist, dass die Komplexität für Entwickler, die zum Erstellen von apps für die größten Barriere ist iOS. Zum Glück enthalten die neuesten Versionen von Visual Studio 2017 die Unterstützung für die automatische iOS-Bereitstellung. Geben Sie einfach Ihre Apple-Entwicklerkonto und Visual Studio 2017 werden alle erforderlichen Artefakte in Ihrem Namen, über eine Verbindung mit einem Mac-Computer einrichten. Um dies zu erreichen, müssen Sie zuerst Ihre Apple-ID mit Visual Studio über Tools zuordnen | Optionen für | Xamarin | Apple-Konten. Klicken Sie im Dialogfeld "Optionen" werden Sie möglicherweise eine oder mehrere Apple-IDs zuordnen, durch Klicken auf die Schaltfläche "hinzufügen", nach der Visual Studio 2017 die Liste der zugeordneten Teams und der Benutzerrolle für die einzelnen Teams zeigt.
Sobald Sie auf "OK" klicken, gelangen Sie zur iOS-Bundle-Signierung Registerkarte die Xamarin.iOS-Projekteigenschaften, und wählen Sie die automatische Bereitstellung-Option (finden Sie unter Abbildung 4).
Abbildung 4, die Aktivierung der automatischen Bereitstellung
Sie müssen lediglich das Team auswählen, für die Entwicklung aus der Dropdownliste "Team" verwenden möchten, und Visual Studio generiert die erforderlichen bereitstellungsprofile und Signaturzertifikate erforderlich, um apps auf einem physischen Gerät testen (die mit dem Mac verbunden sein müssen Computer).
Plattformverbesserungen-Unterstützung
Die neuesten Versionen von Xamarin gehören Verbesserungen, die auf mehrere Plattformen, einschließlich Android, iOS, Tizen und MacOS ausgerichtet. In diesem Artikel werde ich untersuchen, plattformverbesserungen für iOS und Android, die beide eine aktualisierte Projektvorlagen-Assistent freigeben. Wenn Sie ein neues iOS oder Android-Projekt erstellen, werden Sie mit einer Liste von gängigen Vorlagen ("Einzelansicht", "Master / Detail", "Registerkarten-app" und "leere app") aufgefordert. Die Projektvorlagen-Assistent können Sie zudem angeben, welche Art von Geräten, die Sie in Ihren apps unterstützen möchten. Darüber hinaus die Unterstützung für beide Plattformen wurde erweitert, mit bestimmten Verbesserungen.
iOS-Plattform-Unterstützung Xamarin.iOS wurde umgestaltet wurde, um eine gesamte vollständig statische Typsystem einzuschließen. Daher sind iOS, MacOS, TvOS und WatchOS-apps, die Sie mit Xamarin schreiben jetzt zwischen 30 und 50 Prozent kleiner, da der Linker mehr Code zum Zeitpunkt der Erstellung zu entfernen. Speicherauslastung hat ebenfalls verringert, insbesondere beim Starten der app. Darüber hinaus ist beim Start der app nun viel schneller, da die meisten die typregistrierung erfolgt nun zum Zeitpunkt der Erstellung und nicht zur Laufzeit.
Unterstützung für Android-Plattform Xamarin-Unterstützung für Android enthält nun ein neues Tool namens Android-Geräte-Manager, die im Lieferumfang von Visual Studio 2017 und erleichtert es, erstellen und Verwalten von Android-Emulator-Images. Sie können den Android-Geräte-Manager über Tools starten | Android | Android-Geräte-Manager.
Nicht nur können Sie erstellen und bearbeiten Sie die Emulator-Images, Sie können auch schnell eine Emulatorinstanz über die Schaltfläche "Start" starten. Dieses Tool bietet eine große Anzahl von Optionen, die nicht Gegenstand dieses Artikels sind, können Sie Nachschlagen in der Dokumentation unter bit.ly/2LhFUB1 für Weitere Informationen. Das neueste Update enthält die Version des SDK für Android Oreo (API-Ebene 27) und eine Funktion, die als Android SDKs automatisch installieren bezeichnet. Wenn Sie zu öffnen und erstellen ein Projekt, das eine Version des Android SDK ist erforderlich, die auf Ihrem Computer nicht verfügbar, wird eine Benachrichtigung angezeigt, können Sie die erforderliche Version im Hintergrund zu laden. Dieses Feature ist standardmäßig deaktiviert, sodass Sie zum Öffnen des Tools | Optionen für | Xamarin | Android-Einstellungen, und wählen Aktivieren Android SDKs automatisch installieren.
Es ist erwähnenswert, dass Microsoft auch eine Vorschau der Google Android-Emulator angekündigt hat, die auf Hyper-V ausgeführt wird. Dies ist eine sehr wichtige Ergänzung, da viele Entwickler verwendet wird, um die Arbeit mit Visual Studio Android-Emulator, basiert auf Hyper-V und wurde vor kurzem von Microsoft eingestellt. Die neue Vorschau erfordert Windows 10 April 2018 aktualisieren, mit der Windows-HyperVisor-Plattform installiert und die Visual Studio 2017 15.8 Preview 1 (oder höher). Da der Emulator ist noch in der Vorschauphase, ich nicht behandelt werden in diesem Artikel erhalten Sie einen sehr detaillierte und interessanten Blogbeitrag von Miguel de Icaza Informationen finden sie unter bit.ly/2JsVrcq.
Xamarin.Forms-Updates
Microsoft hat Xamarin.Forms 3.0 auf der Konferenz Build 2018 im Mai veröffentlicht, und weitere vor kurzem Xamarin.Forms 3.1 verfügbar über NuGet erfolgt. Schalten Sie die Updates für die Entwicklung von plattformübergreifenden apps mit c# faszinierende neue Funktionen und erheblichen Plattform und Verbesserungen der Benutzeroberfläche.
Auf der Seite Platform wurde die Leistung eine erhebliche Steigerung in Form von verbesserte schnellen Renderern, die mit Version 2.5 des Vorjahres eingeführt wurden. Renderer, aktivieren Sie Xamarin.Forms, um visuelle Elemente in native Ansichten zu übersetzen, Arbeit, die äußerst zeitaufwändig sein, insbesondere bei komplexen Ansichten abrufen können. Microsoft überarbeitet Arbeitsweise Renderer in Version 3.0 Boost Renderingvorgänge zu beschleunigen und die Leistung.
Auf der Seite Benutzeroberfläche führt Xamarin.Forms 3.0 ein neues Layout FlexLayout aufgerufen. Es funktioniert wie ein StackLayout, Anordnen von untergeordneten visuellen Elemente vertikal oder horizontal, während die Möglichkeit, um die untergeordneten visuellen Elemente zu umschließen, wenn nicht genügend Speicherplatz in einer einzelnen Zeile oder Spalte vorhanden ist. Der folgende Codeausschnitt zeigt ein Beispiel, wie Sie ganz einfach eine FlexLayout verwenden können:
<FlexLayout Wrap="Wrap" JustifyContent="SpaceAround">
<!-- Place new controls here -->
<Label Text="A label" FlexLayout.AlignSelf="Center"/>
<Image Source="Image1.jpg" FlexLayout.AlignSelf="Center"/>
<Button x:Name="Button1" Text="Tap here" FlexLayout.AlignSelf="Center"/>
</FlexLayout>
Es gibt zahlreiche FlexLayout-Eigenschaften, aber die drei wichtigsten sind:
- Wrap: Ein Wert aus der FlexWrap-Enumeration, die angibt, ob FlexLayout Inhalt in die nächste Zeile umbrochen werden soll, wenn in der ersten nicht genügend Speicherplatz vorhanden ist. Mögliche Werte sind Wrap (umschließt auf die nächste Zeile), NoWrap (beibehalten die Ansicht Inhalt in einer Zeile) und umgekehrter Reihenfolge (auf die nächste Zeile in die entgegengesetzte Richtung umschließt).
- Richtung: Ein Wert aus der FlexDirection-Enumeration, die bestimmt, ob die untergeordneten Elemente der FlexLayout in einer einzelnen Zeile oder Spalte sortiert werden sollen. Der Standardwert ist die Zeile, aber weitere mögliche Werte sind Column, RowReverse sowie ColumnReverse (umgekehrt bedeutet, dass die untergeordneten Ansichten in der umgekehrten Reihenfolge angeordnet werden).
- JustifyContent: Ein Wert aus der FlexJustify-Enumeration, die angibt, wie untergeordnete Ansichten angeordnet werden soll, wenn zusätzlicher Leerraum darum vorhanden ist. Es sind selbsterklärend Werte wie Start, Center und End sowie eine feiner abgestimmte Optionen. Dazu gehören SpaceAround, in denen Elemente werden mit einer Einheit von Leerzeichen am Anfang und Ende verteilt und zwei Einheiten Abstand zwischen ihnen, sodass die Elemente und das Leerzeichen Geben Sie die Zeile, und SpaceBetween, in dem untergeordneten Elemente mit verteilt sind gleich Leerzeichen zwischen Einheiten und Nein Leerzeichen am Ende der Zeile, also wieder die Elemente und den Platz auszufüllen, die Zeile. Der SpaceEvenly Wert bewirkt, dass untergeordnete Elemente verteilt werden, damit die gleiche Menge an Leerzeichen zwischen den einzelnen Elementen festgelegt ist, wie es die Anfang und Ende Elemente von den Kanten des übergeordneten Elements werden.
In untergeordneten Ansichten können Sie festlegen, die angefügten FlexLayout.AlignSelf-Eigenschaft, um anzugeben, wie die Ansicht in der der FlexLayout-Achse ausgerichtet werden soll. Dies ist ein Objekt des Typs FlexAlignItems und mögliche Werte sind automatisch "," Start "," Center "," End "und" Stretch. Die vollständige Dokumentation für das Steuerelement FlexLayout finden Sie unter bit.ly/2LaMzgt. Eine andere interessante Ergänzung ist Support für Cascading Style Sheets (CSS), aber es ist erwähnenswert, dass der CSS-Formatvorlagen in Xamarin.Forms in mobilen apps genutzt werden, kompatibel sein müssen (finden Sie unter bit.ly/2miMcSO) und dass nicht alle CSS-Formatvorlagen werden unterstützt. Aus diesem Grund sollten diese Funktion eine Ergänzung zur XAML-Stile und nicht als Ersatz berücksichtigt werden. Darüber hinaus sind CSS-Formatvorlagen analysiert und zur Laufzeit ausgewertet werden, nicht zur Buildzeit.
CSS-Formatvorlagen im Xamarin.Forms deklariert, und auf unterschiedliche Weise genutzt werden können. Eine Option besteht in einem StyleSheet-Tag als eine Ressource in einer Seite, wie im folgenden Codeausschnitt hinzugefügt werden:
<ContentPage.Resources>
<ResourceDictionary>
<StyleSheet>
<![CDATA[
^ Contentpage {}
Hintergrundfarbe: Lightgray; }
Stacklayout {}
margin: 20; }
]]>
</StyleSheet>
</ResourceDictionary>
</ContentPage.Resources>
Der Inhalt der CSS-Code wird in einem CDATA-Abschnitt eingeschlossen. Für jedes visuelle Element Geben Sie die gewünschte Eigenschaft/Wert-Paare. Eine andere Möglichkeit ist, um einen vorhandenen Stil aus einer CSS-Datei wie folgt nutzen:
<ContentPage.Resources>
<ResourceDictionary>
<StyleSheet Source="/Assets/mystyle.css" />
</ResourceDictionary>
</ContentPage.Resources>
Denken Sie daran, dass die CSS-Datei mit Ihrer Anwendung durch Festlegen der Eigenschaft "Buildvorgang" als EmbeddedResource gebündelt werden muss. CSS-Stile können ebenfalls deklariert und in C#-Code genutzt werden. Der folgende Codeausschnitt zeigt, wie deklariert, und fügen eine Formatvorlage auf einer Seite-Ressourcen:
using (var reader =
new StringReader
("^contentpage { background-color: lightgray; } stacklayout { margin: 20; }"))
{
this.Resources.Add(StyleSheet.FromReader(reader));
}
Sie könnten auch eine CSS-Datei zur Laufzeit mit den folgenden Codeausschnitt, in dem Page1 repräsentiert eine Seite in der Anwendung und Projekt1 Name Ihres Projekts laden:
this.Resources.Add(StyleSheet.FromAssemblyResource(
IntrospectionExtensions.GetTypeInfo(typeof(Page1)).Assembly,
"Project1.Assets.mystyle.css"));
Ein weiterer sehr nützlicher Zusatz xamarin.Forms wird der Visual State-Manager (bit.ly/2NVH4AS), die Sie bereits wissen können, wenn Sie Erfahrung mit WPF und UWP haben. Mithilfe dieser Option können Sie Änderungen vornehmen, auf die Benutzeroberfläche, die Sie deklariert in XAML, basierend auf eine Ansicht des Status. Beispielsweise können der Visual State-Manager zum Ändern der Farbe einer Ansicht, je nach Zustand, wie in der Codeausschnitt in dargestellt Abbildung 5.
Abbildung 5 Ändern der Hintergrundfarbe
<Entry>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="White" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Focused">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="LightGray" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="Gray" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Entry>
Mit dem Markup im Abbildung 5, der Eintrag wird automatisch die Hintergrundfarbe geändert, wenn dessen Zustand ändert. In diesem Fall müssen Sie den Eintrag der IsEnabled-Eigenschaft als "false", deaktivieren die Ansicht, und lösen den Zustand "deaktiviert" festgelegt. Zustände müssen in Objekte mit dem Namen VisualStateGroup gruppiert werden. Jeden Zustand wird durch das VisualState-Objekt dargestellt, in dem Sie Setter-Spezifikationen hinzufügen, wie Sie mit Stilen, dadurch wird der Name der Eigenschaft, die Sie ändern möchten, und der Wert. Natürlich können Sie mehrere Eigenschaften-Settern angeben.
Xamarin.Forms definiert eine Reihe von Zuständen, der allgemeine Status, z. B. Normal, fokussiert und deaktiviert (siehe die VisualStateGroup mit dem oben genannten CommonState-Namen) aufgerufen. Diese Zustände gelten für jede Ansicht zur Verfügung. Staaten können nur auf bestimmte Ansichten und nicht an andere Personen verfügbar sein. Der Visual State-Manager ermöglicht eine elegante und saubere Möglichkeit, das Verhalten der Benutzeroberfläche, alle in Ihrem XAML-Code zu steuern.
Xamarin.Forms 3.0 erleichtert auch die Lokalisierung von rechts-nach-Links zu implementieren. Die Device-Klasse macht jetzt die FlowDirection-Eigenschaft, die diese Lokalisierungsinformationen des Geräts lautet. Sie können die FlowDirection-Eigenschaft einer Ansicht klicken Sie dann wie folgt den Wert zuweisen:
<ContentPage FlowDirection="{x:Static Device.FlowDirection}">
Sie können natürlich auch FlowDirection-Eigenschaft, einer Sicht binden, in XAML, um sicherzustellen, dass Ihr Ansichtsmodell eine Eigenschaft verfügbar macht, die den Wert des Device.FlowDirection zurückgibt. Nur wenige Wochen nach der Veröffentlichung von Xamarin.Forms-3.0, veröffentlicht Microsoft Version 3.1 enthält Fehlerbehebungen und bietet viele Verbesserungen an Leistung, Zuverlässigkeit und visuelle Elemente. Beispielsweise ist die SelectionMode-Eigenschaft jetzt verfügbar in das ListView-Steuerelement, das wie folgt verwendet werden kann:
<ListView SelectionMode="None">
...
</ListView>
Mögliche Werte lauten "keine", und einzelne. Dies ist eine wichtige Verbesserung, da frühere Versionen erforderlich, dass Sie manuell Code schreiben, um eine Elementauswahl deaktivieren, oder Erstellen eines benutzerdefinierten Renderers für das ListView. Der Schalter Steuerelement unterstützt jetzt auch eine andere Farbe angeben, wenn die Auswahl, dies mit der OnColor-Eigenschaft des Typs Farbe aktiviert ist, können Sie wie folgt:
<Switch OnColor="Blue"/>
Vor dem Xamarin.Forms 3.1 mussten Sie zum Schreiben eines benutzerdefinierten Renderers, um dieses Ergebnis zu erhalten. Auf ähnliche Weise kann das Schieberegler-Steuerelement, Farben, die über die ThumbColor, MaximumTrackColor und MinimumTrackColor Eigenschaften festlegen. Weitere Ergänzungen sind die IsSpellCheckEnabled-Eigenschaft für die Ansichten "Eintrag" und "-Editor, und die Kontrolle über die Textvorhersage und -APIs, mit denen Sie steuern den Schatten über Ansichten in iOS.
Der bindbare Spannen ist sollten Sie sich einen Moment Zeit, zu untersuchen, bei der dieses Feature wurde angefordert. oft von der Entwicklercommunity. Kurz gesagt, erbt die Span-Klasse, die Sie verwenden für komplexere Formatierung von Zeichenfolgen, jetzt BindableObject, sodass alle Eigenschaften mit textformatierung, die Unterstützung von Datenbindung verknüpft. Eine neue bindbare Eigenschaft namens Format wurde eingeführt, damit Sie die XAML-Stile, die definiert, die in den app-Ressourcen verwenden können. Der folgende XAML-Codeausschnitt enthält ein Beispiel:
<Label>
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="{Binding TitleText}" Style="{StaticResource TitleStyle}" />
<Span Text="{Binding SubtitleText}" Style="{StaticResource SubTitleStyle}" />
<Span Text="{Binding SomeText}" Style="{StaticResource NormalStyle}" />
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
Sie finden eine vollständige Liste der verfügbaren Erweiterungen in Xamarin.Forms 3.1 in auf der Seite für versionsanmerkungen bit.ly/2NkVA3T.
Zusammenfassung
Xamarin ist fortlaufend, nicht nur um sich entwickelnden Plattformen und Betriebssysteme zu unterstützen, sondern um die Qualität und Produktivität der Entwicklungstools zu erhöhen gelangt sind. In diesem Artikel habe ich zahlreiche neue und aktualisierte Features, die gelöst werden viele Probleme auf, aus dem Code-Editor und die integrierten Tools zur Plattform untersucht und CSS-Unterstützung. Weitere kommt noch, wenn zusätzliche Updates veröffentlicht werden. Es ist eine gute Idee, die regelmäßig eine Überprüfung auf die Xamarin-Blog (blog.xamarin.com) mit aktuelle Neuigkeiten und Ankündigungen auf dem Laufenden bleiben.
Alessandro Del Sole*wurde seit 2008 ein Microsoft-MVP und ein zertifizierter Xamarin-Entwickler. Er hat viele Bücher, eBooks, anleitende Videos und Artikel zur .NET-Entwicklung mit Visual Studio verfasst. Del Sole arbeitet für Fresenius medizinischen Pflege als senior Software Engineer, zum Erstellen von .NET- und mobilen apps im Gesundheitswesen Markt konzentrieren. Sie können ihm auf Twitter folgen: {3>@progalex\<3}*.
Unser Dank gilt den folgenden technischen Experten von Microsoft für die Durchsicht dieses Artikels: David Britch, Amy Burns
Amy Burns ist ein Boston-basierte Inhaltsentwickler bei Microsoft. Er wurde als Redakteur im Xamarin-Dokumentationsteam seit 2013, mit besonderem Schwerpunkt auf Xamarin.iOS (und iOS-Bereitstellung) und Visual Studio für Mac.
David Britch arbeitet in der Xamarin-Dokumentationsteam bei Microsoft. Für einen Bereich von Veröffentlichungen zur Softwareentwicklung einschließlich Büchern, Leitfäden, referenzimplementierungen, Whitepapers, Videos und Kurse mit Schulungsleiter hat er geschrieben.