2016-03-13 63 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 
}