2016-03-13 64 views
2

我有這個gridview工作正常,但每次我選擇一個項目,我得到這個藍色的項目周圍,如何刪除它?如何擺脫GridView的框選框邊UWP

<GridView Margin="5,15,0,0" x:Name="List" ItemsSource="{Binding}" SelectionChanged="List_SelectionChanged"> 
     <GridView.ItemTemplate> 
      <DataTemplate> 
       <Grid Margin="11"> 
        <StackPanel BorderBrush="Black" Orientation="Vertical"> 
         <Image Width="150" Height="150" Source="{Binding Way}" /> 
        </StackPanel> 
       </Grid> 
      </DataTemplate> 
     </GridView.ItemTemplate> 
     <GridView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <ItemsWrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal" /> 
      </ItemsPanelTemplate> 
     </GridView.ItemsPanel> 
    </GridView> 

enter image description here

回答

1

要刪除的GridView選擇藍色邊框,我們可以修改的GridView模板。要修改GridViewItem的模板,我們可以選擇「文檔大綱」並右鍵單擊GridView,然後選擇「編輯其他模板‘→’編輯生成的項容器(ItemContainerStyle)」→「編輯副本...「。

Style裏面有一個ListViewItemPresenter

在爲Windows 10開發,使用ListViewItemPresenter,而不是GridViewItemPresenter在你的物品容器的風格,既爲ListViewGridView

欲瞭解更多信息,請參閱ListViewItemPresenter

圍繞物品的藍線的顏色由SelectedBackground="{ThemeResource SystemControlHighlightAccentBrush}"定義。我們可以設置SelectedBackground="Transparent",然後圍繞物品沒有藍線。

+0

嗨,我剛剛發現'「SystemControlDisabledTransparentBrush」'但不透明! –

+0

'SystemControlDisabledTransparentBrush'使用'ThemeResource',Transparent是一種顏色。 –

+1

我確實變成了'SelectedBackground =「Transparent」',仍然顯示藍色的東西! –

1

這就是我的做法。雖然改變風格並不難,但這需要大約99%的xaml(以及更多的代碼)來完成。您必須刪除SelectionChanged事件,爲您的DataTemplate指定數據類型,併爲每個項目添加一個Tapped事件。

<GridView SelectionMode="None" ItemsSource="{Binding}" 
    <GridView.ItemTemplate> 
     <DataTemplate x:DataType="YourType"> 
      <Grid Tapped="Grid_Tapped_For_Every_Item"> 
       ...     
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
    ... 
</GridView> 

in code file: 

private void Grid_Tapped_For_Every_Item(object sender, TappedRoutedEventArgs e){ 

    var g = (Grid) sender; 
    var myClass = (YourType)g.DataContext; 
    //Do whatever you were going to do in the SelectionChanged event 
}