【发布时间】:2017-01-12 17:00:24
【问题描述】:
所以我创建了一个 GridView,其中包含我的 ItemTemplate:
<GridView x:Name="colorList2" HorizontalAlignment="Stretch" VerticalAlignment="Top"
IsItemClickEnabled="True"
ItemClick="colorList2_ItemClick"
SelectionMode="Single"
SelectionChanged="colorList2_SelectionChanged"
>
<GridView.ItemTemplate>
<DataTemplate>
<Grid RightTapped="Grid_RightTapped" Tapped="Grid_Tapped">
<Button Height="30" Width="30">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Fill="{Binding Color}"/>
<ContentPresenter Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
在 Grid_RightTapped 和 Grid_Tappen 事件中,我获得了被点击的颜色,我为我的项目着色,我将所选项目影响到 GridView:
private void Grid_Tapped(object sender, TappedRoutedEventArgs e)
{
Colors selectedColor = (sender as Grid).DataContext as Colors;
foreach (NodeViewModel node in diagram.Nodes as DiagramCollection<NodeViewModel>)
{
...
}
this.colorList2.SelectedItem = selectedColor;
}
}
这很好,但我想知道是否有办法“自定义”GridView 的选定/悬停项目的模板? 这些是正方形,我想用椭圆代替它们,就像在 Windows Ink 中一样。
【问题讨论】:
-
能否上传完整代码?
-
DataTemplete 中的 (Binding Color) 和 (TempleteBinding Content) 是什么?
标签: xaml gridview uwp datatemplate ellipse