Как отобразить всплывающее окно под ячейкой datagrid в WPF
Хай
Я хочу, чтобы отобразить всплывающее ниже выбранной ячейки в элементе управления DataGrid. Я использую приведенный ниже код, он почти работает, но проблема в том, что когда я разворачиваю или изменяю размер формы, позиция отображается неправильно.
Пожалуйста, скажите мне, как это сделать
Спасибо.
в XAML
Popup Margin= "0,0,0,0" Name= "Popup1" PlacementTarget= "{Binding ElementName=DgvMain} "HorizontalAlignment= "Left" VerticalAlignment= " Top "Width= "250" Height=" 165 " >
Всплывающий
Что я уже пробовал:
публичный статический класс DataGridExtensions
{
public static DataGridCell GetCurrentDataGridCell(this DataGrid dataGrid)
{
DataGridCellInfo cellInfo = dataGrid. CurrentCell;
if (cellInfo.IsValid = = false)
{
возвращать null;
}
var cellContent = cellInfo.Колонка.GetCellContent(cellInfo. Item);
if (cellContent = = null)
{
возвращать null;
}
верните cellContent.Родитель как DataGridCell;
}
}
частная DgvMain_BeginningEdit недействительным(объект отправителя, DataGridBeginningEditEventArgs е)
{
Ячейка DataGridCell = DgvMain.GetCurrentDataGridCell();
var Position = ячейка.PointToScreen (новая точка(0, 0));
// MessageBox.Показать ("X=" + Позиция.Х. Метод ToString() + ", Г=" + Позиция.Г.Метод ToString(), "Положение");
Popup1.PlacementRectangle = новый прямоугольник(поз.Х - DgvMain.Маржа.Слева-110, Позиция.Г - DgvMain.Маржа.Топ-115, 0, 0);
Popup1.Isopen значение = ИСТИНА;
}