Ограничения использования.NET 2.0 (Windows Forms) управляют в WPF?

Необходимо использовать Application.Volatile в вершине функции:

Function doubleMe(d)
    Application.Volatile
    doubleMe = d * 2
End Function

Это тогда переоценит каждый раз, когда рабочая книга изменяется (если Ваше вычисление установлено на автоматический).

5
задан akjoshi 25 February 2016 в 09:10
поделиться

3 ответа

Основное ограничение заключается в том, что вы теряете все мощные функции WPF: Связывание данных , ControlTemplates и DataTemplates , Infinite размер, масштабирование / вращение, непрозрачность , вложенные свойства , и это лишь некоторые из них. Это слишком много, чтобы отказаться! Вам придется запрограммировать эти элементы управления, используя старые утомительные и подверженные ошибкам методы WinForms, и снова разобраться со всеми теми ограничениями, от которых вы избавились много лет назад.

DataGridView

NET Framework 3.5 sp1 имеет DataGrid , который может выполнять эту работу, и для этого есть несколько сторонних элементов управления, например, от Xceed. Использование сетки на основе WPF позволяет полностью привязать данные, создавать шаблоны и стили внутри сетки, что было бы невозможно, если бы вы использовали WinForms. DataGridView.

PropertyGrid

Причина, по которой WPF не поставляется с PropertyGrid , заключается в том, что его так легко воссоздать, используя то, что уже дает вам WPF: простой список с правильным оформлением и всего несколько строк кода программной части.

Прелесть использования реализации WPF PropertyGrid заключается в том, что вы можете использовать шаблоны для представления редактируемых свойств, и, что наиболее важно, вы можете добавлять новые редакторы свойств, просто выражая их в XAML с помощью нескольких привязок. Например, некоторые свойства в одной из наших сеток свойств устанавливаются с помощью ползунков, и для этого потребовалось всего пять строк XAML.

Вот код, иллюстрирующий ключевые концепции реализации PropertyGrid в WPF :

6
ответ дан 14 December 2019 в 01:10
поделиться

Во-первых, существуют сторонние сетки свойств и сетки данных для WPF, и они обычно поддерживают дополнительные возможности стилизации WPF и более идиоматично вписывается в приложения WPF. Таким образом, вам не нужно возвращаться к WinForms, и, вероятно, не следует этого делать, если сторонние элементы управления или средства управления на самом деле не являются вариантом.

Если вам все же нужно вернуться к WinForms, главное ограничение, о котором следует знать это «правило воздушного пространства»: вы не можете иметь элементы управления WinForms и WPF, перекрывающие друг друга. Плюс, конечно, элементы управления WinForms не могут участвовать в привязке данных WPF, и их придется решать с помощью процедурного кода старой школы, хотя вы можете инкапсулировать их в пользовательские элементы управления, чтобы обойти это. Кроме того, если вы Если вы пытаетесь создать причудливые визуальные эффекты, они могут не работать слишком хорошо с элементами управления WinForms: правило воздушного пространства, вероятно, сильно вас укусит, если вы выполняете преобразования или анимацию в непосредственной близости от элемента управления WinForms. Но для визуально простых приложений они должны работать нормально.

2
ответ дан 14 December 2019 в 01:10
поделиться

В WPF Toolkit есть элемент управления Datagrid. Также на CodePlex есть сторонний элемент управления PropertyGrid (под очень разрешительной лицензией MS-PL).

1
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: