2010-09-24 13 views
0

Просто найдите какой-то вклад в отношении того, с каким контролем я должен идти или с широким подходом. Я собираюсь загрузить png в программу, которую я пишу. Затем я мог указать, что я хочу, чтобы 32x32 строки были разделены над изображением (я не разбиваю изображение, просто указывая, что сетка будет сверху). Таким образом, очевидно, что мне понадобится что-то, что я могу выбрать кратные из этих «ячеек» (которые сетка или что-то ворвалась) и легко определить, какой пользователь выбирает. Содержит ли сетка это или это нечто большее, чем создание рекомендаций, а затем создание некоторых прямоугольников или чего-то еще?Создание настраиваемого наложения сетки

ответ

1

Вы бы использовать ItemsControl или производного класса, такие как Selector с ItemsPanel имущества, установленным в Grid. В объекте ItemsContainerStyle будет установлен стиль для ContentControl. ContentControl - это объект, который будет сгенерирован для каждого элемента в списке, который ваш ItemControl будет связан с использованием свойства ItemsSource. В этом стиле вы установите ControlTemplate для ContentControl для сома, который содержит Border или Rectangle или аналогичный, чтобы получить линии сетки. Корневой элемент управления в вашем ControlTempalte будет иметь свойства Grid.Row и Grid.Column, привязанные к свойствам ваших данных данных, которые будут : .Row и .Column.

Наконец, вы привязываете ItemsControl к ObservableCollection данных DataItems.

<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 } 
    } 

} 
Смежные вопросы