SpreadsheetControl.ColumnWidthChanged Event
Occurs after the column width was changed.
Namespace: DevExpress.Xpf.Spreadsheet
Assembly: DevExpress.Xpf.Spreadsheet.v24.2.dll
NuGet Package: DevExpress.Wpf.Spreadsheet
Declaration
Event Data
The ColumnWidthChanged event's data class is ColumnWidthChangedEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Index | Returns the index of the column whose width was changed. |
Remarks
The ColumnWidthChanged event occurs in the following cases:
- a user changed the column width in the UI;
- the SpreadsheetControl.Options.RaiseEventsOnModificationsViaAPI property was set to true, and the column width was changed in code.
See how to specify the row height or column width.
The example below shows how to use the SpreadsheetControl.ColumnWidthChanged and SpreadsheetControl.RowHeightChanged events to keep a picture in the center of the destination cell when a user changes the cell’s width or height.
public Form1()
{
InitializeComponent();
IWorkbook workbook = spreadsheetControl.Document;
Worksheet worksheet = workbook.Worksheets.ActiveWorksheet;
// Add a picture to cell B2.
Cell destCell = worksheet.Cells["B2"];
Picture picture = worksheet.Pictures.AddPicture("DxLogo.png", destCell);
// Specify the cell width and height.
double cellWidth = destCell.ColumnWidth = picture.Width + 150;
double cellHeight = destCell.RowHeight = picture.Height + 50;
// Center the picture in the cell.
double columnOffset = (destCell.ColumnWidth - picture.Width) / 2;
double rowOffset = (destCell.RowHeight - picture.Height) / 2;
picture.Move((float)rowOffset, (float)columnOffset);
spreadsheetControl.ColumnWidthChanged += (s, e) =>
{
if (e.Index == destCell.ColumnIndex)
{
// Move the picture to keep it in the center of the cell.
columnOffset = (destCell.ColumnWidth - cellWidth) / 2;
picture.Left += (float)columnOffset;
cellWidth = destCell.ColumnWidth;
}
};
spreadsheetControl.RowHeightChanged += (s, e) =>
{
if (e.Index == destCell.RowIndex)
{
// Move the picture to keep it in the center of the cell.
rowOffset = (destCell.RowHeight - cellHeight) / 2;
picture.Top += (float)rowOffset;
cellHeight = destCell.RowHeight;
}
};
}