我想创建一个颜色选择器,看起来像在Windows油墨: UWP:如何创建一个“四舍五入”拾色器
所以我创建了一个的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_Tappent事件,我得到的点击的颜色,我上色我的项目,我影响选定项目到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中一样。
谢谢你们!这工作正常。 –