2009-01-27 12 views
8

Je ne peux pas comprendre comment je peux implémenter une vue d'icône dans le ListView de WPF (une vue semblable à l'explorateur de Windows). En effectuant une recherche sur Google, je n'ai trouvé que des informations sur l'implémentation de GridView, mais aucun indice sur l'Icon View. Je ne parle pas de System.Windows.Form.ListView mais de System.Windows.Controls.ListView.WPF: ListView avec vue des icônes?

Peut-être qu'il existe un autre contrôle pour le faire? Je n'ai rien trouvé de pertinent à ce sujet?

J'ai seulement trouvé quelques personnes qui construisent la vue d'icône à la main en utilisant la liste et en changeant le paneltemplate et le icontemplate. Je ne peux pas croire que c'est la seule façon de le faire.

Des indices?

Merci à l'avance

Répondre

8

Identique à la réponse de Tanveer Badar, mais avec un WrapPanel au lieu d'un UniformGrid. Définissez les éléments suivants dans votre zone de liste:

ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
ScrollViewer.VerticalScrollBarVisibility="Auto"  

pour forcer le WrapPanel à s'enrouler.

6

Situé juste à côté du haut de ma tête, avez-vous essayé?

<Style TargetType="ListBox"> 
    <Setter Property="ItemsPanel"> 
    <Setter.Value> 
     <ItemsPanelTemplate> 
     <UniformGrid/> 
     </ItemsPanelTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 
10

EDIT Apparait j'ai mal compris ce que vous vouliez dire avec vue sur l'explorateur ... i ont mis le mien à Détails ...;) Je vais laisser ma réponse en personne ici en cas fait la même erreur que je ...


il n'y a pas une telle chose comme une vue icône dans WPF, vous devrez mettre en œuvre vous-même, mais vous n'avez pas à tout faire à partir de zéro.

Vous pouvez utiliser ListView en combinaison avec un GridView et au moins un CellTemplate pour la colonne qui contient l'icône.

Le schéma général ressemblerait à quelque chose comme ça pour un explorateur Windows comme vue:

<ListView> 
    <ListView.Resources> 
     <DataTemplate x:Key="IconTemplate"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 
       <Image Grid.Column="0"/> 
       <TextBlock Grid.Column="1" Text="{Binding Name}"/> 
      </Grid> 
     </DataTemplate> 
    </ListView.Resources>    
    <ListView.View>  
     <GridView> 
      <GridViewColumn CellTemplate="{StaticResource IconTemplate}" Header="Name"/> 
      <GridViewColumn DisplayMemberBinding="{Binding Size}" Header="Size"/> 
      <GridViewColumn DisplayMemberBinding="{Binding Type}" Header="Type"/>      
     </GridView> 
    </ListView.View> 
</ListView>