Как создать всплывающую подсказку для DataGridColumnHeader в WPF?
Я нашел, как создать ToolTip для DataGridColumnHeader в WPF (и убедиться, что заголовок обернут).
Я могу использовать этот стиль следующим образом:
Это решение не очень хорошее, потому что мне нужно создать отдельный стиль для каждого заголовка, потому что всплывающая подсказка жестко привязана к стилю. Мне нужен общий стиль, который можно использовать следующим образом:
Есть идеи, как это сделать? Может быть с пристроенным имуществом?
2 ответа
Вы можете установить ToolTipService.ToolTip присоединяет свойство к каждому столбцу и привязывает к нему свои значения, поскольку оно не используется в столбцах.
Затем вы можете привязать этот текст к столбцу в своем стиле заголовка с помощью привязки RelativeSource .
Теперь у вас есть только один стиль. Если вы хотите избежать установки стиля для каждого столбца, сделайте его неявным, опуская x:Key . Затем он будет применен ко всем подходящим типам в области видимости.
Вы можете использовать DataGridTemplateColumn
Это может показаться слишком большим для каждого столбца. Но это дает вам гораздо больше контроля и лучшую масштабируемость для будущих сложных изменений. Его несколько тривиальная работа выполняется на начальном этапе разработки.
По крайней мере, это мое мнение, поскольку после успеха концепции появилось несколько дополнительных входов / изменений и новых требований для улучшения взаимодействия с пользователем с помощью определенных правил и логики о том, как / когда пользователь может взаимодействовать с элементами пользовательского интерфейса, особенно при изменении данных.
Редактировать — Ваш стиль может быть таким же, как и вы сами, то есть с ориентацией на DataGridColumnHeader .
Подсказка для DataGridView. C# WinForms
Подскажите как сделать подсказку для DataGridView(ToolTip), если это возможно, чтобы при наведении курсора мыши, выводилось, к примеру, «Элементы матрицы».
Добавлял ToolTip к DataGridView и писал туда «Элементы матрицы», в надежде, что при наведении курсора появится подсказка — но нет, не появляется.
На каком-то форуме есть один вариант — для каждого столбца сделать ToolTipText — но этот вариант мне не подходит.
Попробуй в datagridview.Rows[i].Tag загрузить информацию, после создай событие MouseEnter и тому подобное и через событие вызывай единый ToolTip и отправляй в качестве аргумента тот самый Tag
Для того, чтобы сделать подсказку для всей DataGridView, а не отдельных ячеек:
- Добавляется ToolTip.
- В св-ве DataGridView ToolTip на ToolTip1(если это первый тул тип) устанавливается текст самой подсказки.
- Св-во DataGridView ShowCellToolTips устанавливается false.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# winforms или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Практическое руководство. Определение текста всплывающих подсказок для отдельных ячеек элемента управления DataGridView в Windows Forms
По умолчанию подсказки используются для отображения значений ячеек DataGridView, в которых не помещается все содержимое. Однако это поведение можно переопределить, чтобы задать текстовые значения подсказок для отдельных ячеек. Это может быть полезно для показа пользователям дополнительных сведений о ячейке или предоставления пользователям альтернативного описания содержимого ячейки. Например, если имеется строка со значками состояния, может потребоваться предоставить текстовые пояснения с помощью подсказок.
Вы также можете отключить отображение подсказок на уровне ячейки, присвоив свойству DataGridView.ShowCellToolTips значение false .
Добавление подсказки для ячейки
Компиляция кода
Для этого примера требуются:
элемент управления DataGridView с именем dataGridView1 , содержащий столбец с именем Rating для отображения строковых значений с одним–четырьмя символами звездочки («*»); событие CellFormatting элемента управления должно быть связано с методом обработчика событий, показанным в примере;