2015-11-18 12 views
9

Sto cercando di mostrare un elenco di immagini con un'altezza specifica (inferiore all'altezza dello schermo) e voglio che la larghezza corrisponda alla larghezza dello schermo.Margini ListView

Quando ho messo questi in una griglia, sono in grado di ottenere l'effetto desiderato:

<Grid> 
    <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image> 
</Grid> 

Ma quando li ho messi in un controllo ListView, vedo che c'è un margine sul bordo sinistro e destro l'immagine. In altre parole, l'immagine non è da bordo a bordo. Ecco un (sopra) versione semplificata del mio codice:

<Grid> 
    <ListView> 
     <Image HorizontalAlignment="Stretch" Source="Assets/someimage.jpg" ></Image> 
    </ListView> 
</Grid> 

Dopo aver letto altre discussioni simili Ho provato ad utilizzare gli stili per impostare la proprietà HorizontalAlignment di ListviewItems senza alcun risultato. Cosa mi manca?

+0

Stai utilizzando il binding (Itemsource)? –

+0

In definitiva, mi piacerebbe usare il binding ma in questo momento non lo sono. Volevo vedere se sono in grado di ottenere prima il look desiderato, quindi passare a cose più grandi e complesse. –

+0

Non sono sicuro che possa essere d'aiuto, ma puoi provare a lavorare con il binding e impostare ItemTemplate su Grid/Image e vedere se risolve il tuo problema. fammi sapere se hai bisogno di un esempio di codice e ne posterò uno come risposta. –

risposta

15

Prima di tutto, quando si aggiunge un'immagine su un listView, questa immagine diventa un contenuto di un oggetto ListView, che consente di rimuovere i margini applicati automaticamente da questa voce.

<ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="Padding" Value="0"/> 
      <Setter Property="BorderThickness" Value="0"/> 
     </Style> 
</ListView.ItemContainerStyle> 

Anche facendo questo, si potrebbe ancora avere un po 'di margine, che viene applicato dal ListView:

ListView BorderThickness="0" 
     Padding="-1"> 

BorderThickness non è sufficiente per rimuovere tutti margine, è per questo che abbiamo impostato l'imbottitura di il listView di -1, è possibile regolare questo valore per adattarlo meglio alla finestra.

+0

Eccellente! Grazie Bruno. Questo e 'esattamente quello che stavo cercando! –

+0

Nessun problema, felice di aiutare. –