我尝试在 WPF中实现一个鼹鼠游戏。
Molehills 在UniformGrid中。根据选项,鼹鼠山是复选框或图像。麻烦来了。
我不知道如何实现UniformGrid以同时接受checkboxes和images。
也许您对我如何解决它有更好的想法。也许用于复选框和图像的UniformGrid不是一个好主意。
我试过这样:
<ItemsControl Name="GameBlocksItemsControl" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=Window},Path=Moles}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=Conf.Cols}"
Rows="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=Conf.Rows}"
Name="MolesGrid">
</UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Moles是Object的集合,因此我可以将Checkbox或BitmapImage放在那里。
不幸的是,在将一些BitmapImage添加到集合后,它们无法正确显示(而不是图像,写成:System.Windows.Media.Imaging.BitmapImage)。如果我将CheckBox es 添加到集合中,它们会显示得很好。
我考虑编写转换器,但这样的转换器必须知道指定的Object是CheckBox还是BitmapImage。即使可以编码,也不是很优雅的解决方案