(WPF) UserControl или CustomControl? - PullRequest
       2

(WPF) UserControl или CustomControl?

1 голос
/ 20 октября 2010

Мне нужно построить конкретный интерактивный рисунок «холст».

На этом холсте пользователь сможет размещать графические элементы - точки, связанные линиями.

У меня есть готовый WinForms UserControl - pointsList, который представляет список точек, представленных на холсте. PointsList может добавлять и удалять точки, связывать их линией.

pointsList должен быть плавающим (подвижным) и изменяемым размером элементом управления на холсте (как окна на экране).

Мои вопросы:

  1. Каков наилучший выбор для этого «холста» - WPF UserControl или CustomControl ?
  2. Можно ли разместить (плавающий) WinForm UserControl внутри элемента управления WPF ?
  3. Трудно ли будет переписать плавающий и изменяющий размер пользовательский элемент управления WPF внутри другого?

EDIT

Лучшее объяснение " Floating Control ":

Представьте себе контейнер WPF (скажем, Canvas). На этом холсте у вас есть кнопка. Когда вы нажимаете кнопку, «Управление плавающим окном» открывает внутри Canvas.

Этот элемент управления похож на форму Windows, его можно открывать, перемещать, закрывать, изменять размер, но все это внутри родительского холста. Нечто похожее на родительские и дочерние MDI-формы, но родительский - это не форма, а контейнер WPF (скажем, Canvas).

Ответы [ 2 ]

4 голосов
/ 20 октября 2010

1) Оба типа подойдут для ваших нужд.Пользовательские элементы управления обычно легче создавать, особенно когда вы новичок в WPF.CustomControl на самом деле не класс, но это означает, что вы расширяете существующий элемент управления.Между этими двумя подходами есть некоторые различия, самый большой из которых заключается в том, что пользовательский элемент управления легче сделать темным.В вашем случае, я предполагаю, что это не нужно, поэтому я бы порекомендовал UserControl.Подробнее об этом: http://www.wpftutorial.net/CustomVsUserControl.html

2) Да.Вы можете поместить элемент управления WinForms в WPF, используя элемент управления WindowsFormsHost.Одним из ограничений является то, что элемент управления WinForms должен быть непрозрачным прямоугольником, а это означает, что вы не можете бросать различные фигуры и ожидать, что они будут накладываться правильно.Ищите WindowsFormsHost, и вы найдете много примеров.

3) Можете ли вы объяснить лучше?не понимаю, что вы имеете в виду, но, конечно, вы можете размещать UserControls друг в друге, и WPF особенно полезен при работе с динамическим размером.

1 голос
/ 20 октября 2010

Мы получили много пробега, адаптируя этот код WPF от CodeProject. текст ссылки

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