Элементы управления Windows Forms и эквивалентные элементы управления WPF
Многие элементы управления Windows Forms имеют эквивалентные элементы управления WPF, но некоторые не имеют таковых. В этом разделе сравниваются типы элементов управления, предоставляемые двумя технологиями.
Вы всегда можете использовать взаимодействие для размещения элементов управления Windows Forms, которые не имеют эквивалентов в приложениях на основе WPF.
В следующей таблице показано, какие элементы управления и компоненты Windows Forms имеют аналогичные функциональные возможности среди элементов управления WPF.
элемент управления Windows Forms | эквивалентный элемент управления WPF | Замечания |
---|---|---|
BindingNavigator | Нет эквивалентного элемента управления. | |
BindingSource | CollectionViewSource | |
Button | Button | |
CheckBox | CheckBox | |
CheckedListBox | ListBox с композицией. | |
ColorDialog | Нет эквивалентного элемента управления. | |
ComboBox | ComboBox | ComboBox не поддерживает автоматическое завершение. |
ContextMenuStrip | ContextMenu | |
DataGridView | DataGrid | |
DateTimePicker | DatePicker | |
DomainUpDown | TextBox и два элемента управления RepeatButton. | |
ErrorProvider | Нет эквивалентного элемента управления. | |
FlowLayoutPanel | WrapPanel или StackPanel | |
FolderBrowserDialog | Нет эквивалентного элемента управления. | |
FontDialog | Нет эквивалентного элемента управления. | |
Form | Window | Window не поддерживает дочерние окна. |
GroupBox | GroupBox | |
HelpProvider | Нет эквивалентного элемента управления. | Нет справки F1. Справка «Что это» заменяется всплывающими подсказками. |
HScrollBar | ScrollBar | Прокрутка встроена в контейнерные элементы управления. |
ImageList | Нет эквивалентного элемента управления. | |
Label | Label | |
LinkLabel | Нет эквивалентного элемента управления. | Для размещения гиперссылок в содержимом потока можно использовать класс Hyperlink. |
ListBox | ListBox | |
ListView | ListView | Элемент управления ListView предоставляет сведения только для чтения. |
MaskedTextBox | Нет эквивалентного элемента управления. | |
MenuStrip | Menu | Стилизацию элемента управления Menu можно приблизить к поведению и внешнему виду класса System.Windows.Forms.ToolStripProfessionalRenderer. |
MonthCalendar | Calendar | |
NotifyIcon | Нет эквивалентного элемента управления. | |
NumericUpDown | TextBox и два элемента управления RepeatButton. | |
OpenFileDialog | OpenFileDialog | Класс OpenFileDialog представляет собой оболочку WPF вокруг элемента управления Win32. |
PageSetupDialog | Нет эквивалентного элемента управления. | |
Panel | Canvas | |
PictureBox | Image | |
PrintDialog | PrintDialog | |
PrintDocument | Нет эквивалентного элемента управления. | |
PrintPreviewControl | DocumentViewer | |
PrintPreviewDialog | Нет эквивалентного элемента управления. | |
ProgressBar | ProgressBar | |
PropertyGrid | Нет эквивалентного элемента управления. | |
RadioButton | RadioButton | |
RichTextBox | RichTextBox | |
SaveFileDialog | SaveFileDialog | Класс SaveFileDialog представляет собой оболочку WPF вокруг элемента управления Win32. |
ScrollableControl | ScrollViewer | |
SoundPlayer | MediaPlayer | |
SplitContainer | GridSplitter | |
StatusStrip | StatusBar | |
TabControl | TabControl | |
TableLayoutPanel | Grid | |
TextBox | TextBox | |
Timer | DispatcherTimer | |
ToolStrip | ToolBar | |
ToolStripContainer | ToolBar с композицией. | |
ToolStripDropDown | ToolBar с композицией. | |
ToolStripDropDownMenu | ToolBar с композицией. | |
ToolStripPanel | ToolBar с композицией. | |
ToolTip | ToolTip | |
TrackBar | Slider | |
TreeView | TreeView | |
UserControl | UserControl | |
VScrollBar | ScrollBar | Прокрутка встроена в контейнерные элементы управления. |
WebBrowser | Frame, System.Windows.Controls.WebBrowser | Элемент управления Frame может размещать HTML-страницы. |
См. также
- ElementHost
- WindowsFormsHost
- Конструктор WPF для разработчиков Windows Forms
- Пошаговое руководство. Размещение элемента управления Windows Forms в приложении WPF
- Пошаговое руководство. Размещение составного элемента управления WPF в форме Windows Forms
- Миграция и взаимодействие систем
Wpf tabitem как переключать с помощью combobox
Для создания вкладок в WPF, как и в WinForms, предназначен элемент TabControl, а отдельная вкладка представлена элементом TabItem:
Первая вкладка Вторая вкладка
Элемент TabItem является элементом управления содержимым, поэтому в него можно вложить другие элементы:
Смартфоны iPhone S6 LG G 4 Lumia 550 Планшеты
Класс TabItem наследуется от класса HeaderedContentControl, поэтому кроме свойства Content , определедяющее содержимое вкладки, имеет также свойство Header , которое определяет заголовок. И в этот заголовок мы можем вложить различное содержимое, как в примере выше.
И также, как и в случае с ListBoxItem и ComboBoxItem, мы можем вложить в TabControl и другие элементы, которые неявно образуют отдельные вкладки:
Первая вкладка Вторая вкладка Третья вкладка
Программное добавление вкладок
Допустим, у нас на форме есть TabControl:
Через код C# добавим в него вкладку:
// формируем содержимое вкладки в виде списка ListBox notesList = new ListBox(); notesList.Items.Add("Macbook Pro"); notesList.Items.Add("HP Pavilion 5478"); notesList.Items.Add("Acer LK-08"); // добавление вкладки products.Items.Add(new TabItem < Header = new TextBlock < Text = "Ноутбуки" >, // установка заголовка вкладки Content = notesList // установка содержимого вкладки >);
- Глава 1. Введение в WPF
- Особенности платформы WPF
- Первое приложение с .NET CLI
- Первое приложение в Visual Studio
- Введение в язык XAML
- Файлы отделенного кода
- Сложные свойства и конвертеры типов
- Пространства имен из C# в XAML
- Введение в компоновку
- Grid
- GridSplitter
- StackPanel
- DockPanel
- WrapPanel
- Canvas
- Свойства компоновки элементов
- Обзор элементов управления и их свойств
- Элементы управления содержимым
- Кнопки
- CheckBox и RadioButton
- Всплывающие подсказки ToolTip и Popup
- Контейнеры GroupBox и Expander
- ScrollViewer. Создание прокрутки
- Текстовые элементы управления
- Элементы управления списками
- ListBox
- ComboBox
- ListView
- Создание вкладок и TabControl
- Меню
- ToolBar
- TreeView
- DataGrid
- ProgressBar и Slider
- Работа с датами. Calendar и DatePicker
- Работа с изображениями. Image и InkCanvas
- Введение в Dependency Property
- Прикрепляемые свойства / attached property
- Создание свойств зависимостей
- Маршрутизация событий
- События клавиатуры
- События мыши и фокуса
- Основы команд
- Создание новых команд
- Обзор кистей
- Концепция ресурсов в WPF
- Статические и динамические ресурсы
- Словари ресурсов
- Введение в привязку данных
- Интерфейс INotifyPropertyChanged
- Форматирование привязки и конвертеры значений
- Стили
- Триггеры
- Темы
- Класс Application
- Работа с классом Application
- Ресурсы приложения
- Логическое и визуальное дерево
- Создание и использование шаблонов
- Визуальные состояния
- Круглое окно
- Привязка данных и контекст данных
- Работа с коллекциями данных. ObservableCollection
- ItemTemplate и DataTemplate
- ItemsPanel. Установка панели элементов
- Виртуализация
- Провайдеры данных. ObjectDataProvider
- XmlDataProvider
- Иерархические данные и HierarchicalDataTemplate
- Валидация данных
- Потоковые документы
- Контейнеры потоковых документов
- RichTextBox и редактирование документов
- Фиксированные документы
- Аннотации
- Фигуры
- Пути и геометрии
- PathGeometry
- Трансформации
- Основы работы с трехмерной графикой
- Определение трехмерного объекта
- Освещение
- Камера
- Создание куба. Текстурирование
- Трехмерные трансформации и анимации
- Взаимодействие с трехмерными объектами
- Основы анимаций
- Анимация в XAML
- Анимации по ключевым кадрам
- Анимация пути
- Плавность анимации
- Класс Window
- Взаимодействие между окнами
- Диалоговые окна
- Определение паттерна MVVM
- Реализация MVVM. ViewModel
- Команды в MVVM
- Передача параметров команде
- Взаимодействие команд и событий
- Работа с диалоговыми окнами
- Работа с SQLite через Entity Framework
- MVVM и SQLite
- Внедрение зависимостей в приложении WPF
Помощь сайту
410011174743222
Перевод на карту
Номер карты:
4048415020898850Контакты для связи: metanit22@mail.ru
Copyright © metanit.com, 2024. Все права защищены.
WPF TabControl: размещение заголовков
Вкладки TabControl обычно размещаются в верхней части, и именно так располагаются TabControl по умолчанию в WPF:
Однако с помощью свойства TabStripPlacement, мы запросто можем изменить это:
TabStripPlacement можно установить в верхнее (Top), нижнее (Bottom) положение, слева (Left) или справа (Right). Но если выбрать слева или справа мы получим такой результат:
Лично я ожидал, что в этом случае вкладки будут в повернутом положении, так чтобы текст располагался вертикально, а не горизонтально, но TabControl в WPF так не делает. К счастью, мы можем сделать это сами, с помощью маленького хака:
Если вы еще не читали главы о шаблонах и стилях, вы можете слегка запутаться, но здесь мы используем стиль для элементов TabItem, в котором переопределяем HeaderTemplate и после этого поворачиваем вкладки. Вкладки слева мы повернули на 270 градусов — если вкладки поместить справа, нужно будет повернуть их на 90 градусов.
This article has been fully translated into the following languages:
Is your preferred language not on the list? Click here to help us translate this article into your language!
WPF TabControl: настройка внешнего вида с помощью стилей
В одной из наших предыдущих статей мы выяснили как просто настроить внешний вид заголовков WPF TabControl, например, добавлять изображение или цвет текста. Однако, если вы захотите пойти дальше и напрямую влиять на то, как выглядит tab, включая форму и обводку, вам нужно будет переписать шаблон управляющего элемента, что вполне реально, несмотря на то, что это не такой прямолинейный подход, как большинство остальных областей WPF.
Итак, если вы хотите иметь полный контроль над тем, как выглядит ваш TabControl, изучите следующий пример:
Как вы можете видеть, это делает TabControl немного похожим на Windows 8, без границ и менее яркого цвета для выделения выбранной вкладки и без фона для невыбранных вкладок. Все это достигается путем изменения шаблона ControlTemplate с использованием стиля. Добавляя элемент управления ContentPresenter , мы указываем, где должно быть размещено содержимое элемента TabItem. У нас также есть пара триггеров, которые управляют цветом фона вкладок на основе свойства IsSelected.
Если вам требуется более сложное оформление, это так же просто, как изменить шаблон. Например, вам может понадобиться рамка, но с закругленными углами и градиентным фоном — без проблем! Посмотрите на следующий пример, где мы это делаем:
Как вы можете видеть, я просто добавил элемент управления Border вокруг ContentPresenter, чтобы получить такое оформление. Надеемся, что это продемонстрирует, насколько легко создать вкладки в вашем стиле и сколько возможностей у этой техники.
This article has been fully translated into the following languages:
Is your preferred language not on the list? Click here to help us translate this article into your language!