只是寻找一些关于我应该采用什么控制或广泛方法的输入。我将在我正在编写的程序中加载一个png。然后我可以指定我想要在图片上分割32x32行(我没有打破图片,只是指定一个网格在顶部)。因此,显然我需要一些东西,我可以选择这些“单元格”(网格或其他任何内容)的多个,并轻松识别用户正在选择的内容。网格是做这个还是更像是创建指南然后创建一些矩形或什么?
答案 0 :(得分:1)
您可以使用ItemsControl或派生类,例如Selector,ItemsPanel属性设置为Grid
。在ItemsContainerStyle属性中,将为ContentControl
设置样式。 ContentControl
是将使用ItemsSource属性为ItemsControl绑定的列表中的每个项生成的对象。在该样式中,您将为ControlTemplate
设置ContentControl
以包含Border或Rectangle或类似内容,以获取网格线。 ControlTempalte
中的根控件将Grid.Row和Grid.Column属性绑定到数据项的.Row
和.Column
属性,这些属性将是DataContext
。< / p>
最后,再将ItemsControl绑定到这些DataItem的ObservableCollection。
<ItemsControl ItemsSource={Binding MyDataItems} ....
您的DataItem看起来像这样:
public class DataItem : INotifyPropertyChanged
{
public int Row
{
get { // return field }
set { // raise the PropertyChanged event here }
}
public int Column
{
get { // return field }
set { // raise the PropertyChanged event here }
}
}