2012-08-03 3 views

risposta

4

Guardate questa domanda: Disable cross-slide selection for a listview

È inoltre possibile apportare modifiche al modello di togliere qualunque stati visivi e ornamenti - andare al progettista e fare clic destro tuoi ListView/Modifica modelli aggiuntivi/Modifica contenitore articoli generati (ItemContainerStyle)/Modifica una copia ... - che estrae il modello che è possibile modificare utilizzando il metodo preferito.

+0

Purtroppo lo stile esteso non è più generato da Blend (che genera solo il predefinito), ma è disponibile da msdn http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj709921.aspx. – mydogisbox

+0

Sì, penso che l'attuale modello 'ListViewItem' sia molto semplificato - sospetto che sia effettivamente reso a livello di piattaforma/renderizzatore per migliorare le prestazioni e quindi, se si vuole personalizzarlo, si sta effettivamente complicando il modello. –

+0

sì, purtroppo, non ho trovato un modo migliore di disabilitare tutte le animazioni dei clic sugli oggetti mantenendo comunque ScrollIntoView. – mydogisbox

3

Dopo aver cercato su google ho scoperto che l'evidenziazione si verifica in ListViewItemPresenter, che risulta essere piuttosto nascosto. Si trova all'interno di ControlTemplate di ListViewItem, che è ItemContainer per ListView. Il modo più semplice che ho trovato per disattivare l'effetto è quello di ignorare semplicemente questo ControlTemplate:

<ListView> 
<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate> 
        <ContentPresenter/> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ListView.ItemContainerStyle> 
<TextBlock Text="List Item" /> 
... 
<TextBlock Text="List Item" /> 

fonte: http://jonstodle.com/soap-box/uwp-listview-without-highlighting-and-stuff/

+0

ma si prega di tenere a mente che questo rompere l'accessibilità del controllo .. –