Понимание модели XAML Silverlight: добавление линий на холст? - PullRequest
1 голос
/ 28 января 2011

У меня есть элемент canvas, и я хотел бы нарисовать на нем линии сетки (чтобы он выглядел как инженерная бумага).

На мой взгляд, есть несколько способовсделать это:

  1. Использовать XAML и копировать / вставлять элементы «Path» в холст и изменять свойства верхнего, левого
  2. Использовать код для добавления линий сетки
  3. Привязка данных?

XAML прямолинейен, но громоздок.Код также прост.

Я не уверен насчет последнего.Я продолжаю думать, что использование кода для создания элементов управления - это способ работы Winforms, и я бы предпочел сделать все «правильным образом».Так я бы создал список «верхних» и «левых» значений, и из этого были бы сгенерированы строки?Или привязка данных действительно используется для помещения данных в таблицы Excel и т. П.?

Ответы [ 2 ]

1 голос
/ 29 января 2011

Определенно используйте код.Это даст вам возможность изменять и корректировать этот интервал вашей сетки и определенно следует принципам DRY.

Вы можете написать что-то вроде следующего псевдокода:

int width = 500;
int height = 500;
int increment = 5;

int i = 0;
public void DrawHorizontalLines() {
   while (i <= height) {
      DrawHorizontalLine(i);
      i += increment;
}

public void DrawHorizontalLine(int startY) {
  //pseduo code to draw line goes here
  //line starts from X=0 and goes to X=width and begin Y spaces from the top
}

Добавьте, если вынапример, вы можете поместить все линии внутри прямоугольника, чтобы вы могли легко показать / скрыть прямоугольник, тем самым показать / скрыть сетку.

1 голос
/ 29 января 2011

Если строки статичны, т. Е. Их расположение не меняется, я бы добавил их в коде для скорости и простоты.

Привязка данных хороша для привязки данных, которые динамичны, то есть меняются.Кроме того, определяя внешний вид данных в XAML в качестве шаблона, вы можете «оформить» или «оформить» свой пользовательский интерфейс.Тем не менее, в вашем случае я думаю, что простой подход, вероятно, является лучшим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...