2014-10-08 18 views
5

Sto provando a creare un'app cross platform utilizzando Xamarin.Forms. Per quanto ne so, l'interfaccia utente verrà creata dal codice e il file .axml verrà generato automaticamente.Posso progettare l'interfaccia utente in Xamarin.Forms utilizzando XAML

Posso modificare il file .axml per modificare l'interfaccia utente? Ho provato a modificare ma tutto ciò che viene fuori è ciò che è scritto nel codice. vale a dire: hello forms

UPDATE

public static Page GetMainPage() 
     { 
      return new simplerow(); 
     } 
+0

È difficile capire dal proprio aggiornamento cosa è/cosa non funziona. Se vuoi inviare il tuo progetto, darò un'occhiata? I miei dettagli di contatto sono sul mio profilo. – Pete

+0

@Pete Pubblicherò il codice completo qui domani.Grazie per il tuo aiuto :) – techno

+0

@Pete Ecco il link al progetto xamarin.forms https://www.dropbox.com/s/myhuun5fp3rrd70/testforms.zip?dl = 0 – techno

risposta

7

In Xamarin.Forms è possibile creare le pagine da definizioni di markup condivise su tutte le piattaforme.

In genere si scrivono tutte le pagine di contenuto utilizzando Xamarin.Forms, tuttavia è possibile combinare pagine native in un'applicazione se lo si desidera.

Queste pagine comuni condivisi, scritti in Xamarin.Forms, risiederanno magari in un progetto diPCL, o di un progetto condiviso in modo che possono quindi essere riutilizzate nelle specifiche della piattaforma progetti, ogni target una piattaforma specifica OS.

è possibile scrivere queste pagine comuni, sia in codice, o in XAML. Puoi anche scegliere di scrivere alcune pagine in un modo, e l'altro se lo desideri.

A La pagina Xamarin.Forms viene elaborata in fase di esecuzione tramite l'interpretazione della composizione della pagina che è stata creata.

Ogni controllo specificato su una pagina, ha il proprio renderizzatore specifico della piattaforma, dietro le quinte, che produrrà l'output che è mirato a quello OS.

Quando si scrive Xamarin.Forms pagine, per-il-più, si inizierà a imparare un nuovo modo di creare pagine che si astrae dalla complessità della creazione di applicazioni mobili su ogni diversa piattaforma OS.

Non esiste quindi alcuna modificabile .axml che viene generato ecc come si scriverà le pagine utilizzando Xamarin.Forms markup e dei controlli, e anche i vostri propri o di altri personalizzati-controlli per produrre il proprio pagine di applicazione .

Il seguente numero link mostra alcuni esempi di come scrivere XAML pagine.

Il seguente link mostra alcuni esempi di come scrivere da code-behind pagine.

+0

Grazie per la risposta, questo rende le cose molto chiare. Spiacente per la risposta tardiva. – techno

1

Hai sbagliato. I moduli vengono creati tramite codice o XAML. Nessun axml o qualcosa di persistente viene generato a livello di piattaforma, tutto viene eseguito in runtime (XAML è compilato in fase di compilazione).

Quindi, modificare il codice o XAML se si desidera modificare qualcosa. Oppure, se hai bisogno di qualcosa di più impegnativo, piuttosto che prendere in considerazione una sottoclasse di un Renderer esistente o crearne di propri.

+0

Grazie. Se ho bisogno di creare un'app Xamarin.Forms, posso creare l'interfaccia utente utilizzando XAML, ovvero: modificando il Main. file axml come facciamo in App Android. Ma ho modificato in questo modo e il cambiamento non si riflette, tutto ciò che viene è il messaggio di base delle forme Ciao. Per favore fatemi sapere se avete bisogno del codice – techno

+1

No, non c'è axml. XAML è indipendente dalla piattaforma per i moduli. [Leggi di più qui] (http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/) –

+0

"(XAML è una specie di compilazione in fase di compilazione)" è una specie di sbagliato :) –

2

Insieme alla risposta precedente re: .xaml anziché .axml, è necessario ricordare di modificare il codice di avvio in app.cs per utilizzare il nuovo modulo .xaml. Sostituisci la "nuova ContentPage {...};" con "new MyForm();" (dove "MyForm" è il nome del tuo nuovo modulo XAML).

MODIFICA: è stato scaricato il progetto dal link casella personale. Commenti sotto ...

Vedo diversi problemi qui. Penso che potrebbe essere necessario passare attraverso le procedure dettagliate e le applicazioni di esempio fornite da Xamarin per familiarizzare con i concetti alla base delle app XF.

In primo luogo, si sta tentando di utilizzare un'attività come pagina dell'applicazione. In un'app Xamarin Forms, deve essere una vista di qualche tipo, non una visuale specifica della piattaforma come Activity.

In secondo luogo, rimuovere il file "test.xml" dalla cartella Risorse/layout del progetto Android; mentre i file XAML sono effettivamente XML, hanno un 1) hanno un'estensione di file .xaml e 2) appartengono al progetto condiviso.

Ecco cosa dovete fare per ottenere il vostro lavoro del progetto: (sto supponendo che si sta utilizzando VS qui, sotto Xamarin Studio, è un po 'diverso.)

  1. Fare clic con il "testforms" progetto condiviso
  2. Fare clic su Aggiungi dal menu contestuale e selezionare "Nuovo elemento"
  3. nella finestra di dialogo che appare, selezionare "Forme XAML Pagina" e nella zona nome immettere un nome (come "MyForm") (Se stai usando XS, scegli "Nuovo file" e "Forms ContentPage")
  4. T aggiungerà due file al progetto: un file XAML contenente il layout (ad esempio MyForm.xaml) e un file code-behind (ad es .: MyForm.xaml.cs).
  5. Aprire il file XAML, e modificare l'elemento etichetta in modo che l'attributo di testo è

    Text = "Ciao, mondo!"

  6. Modificare il corpo di GetMainPage nei vostri App.cs al seguente:

    ritorno nuovo MyForm();

  7. eseguire l'applicazione

Spero che questo aiuti!

+0

Grazie per la segnalazione. Finalmente posso usare XAML che so progettare l'interfaccia utente :) – techno

+0

Ho provato questo e aggiornato il codice nel file app.cs per creare un interfaccia utente da simplerow.xml.Ma più semplice non è riconosciuto.Per favore vedere l'aggiornamento. – techno

+0

Non sta semplicemente riuscendo a compilare? Come è il tuo XAML? Hai incluso lo spazio dei nomi in cui si trova la classe codebehind del modulo? –

Problemi correlati