AppointmentViewInfo.ConvertToVisualBounds(Rectangle) Method
Converts coordinates of the rectangle specifying ViewInfo item bounds to the client coordinates that are relative to the upper-left corner of the visible area of the Scheduler view.
Namespace: DevExpress.XtraScheduler.Drawing
Assembly: DevExpress.XtraScheduler.v24.2.dll
Declaration
Parameters
Name | Type | Description |
---|---|---|
bounds | Rectangle | A Rectangle object which is the appointment’s bounding rectangle in the client coordinate system (in pixels). |
Returns
Type | Description |
---|---|
Rectangle | A Rectangle object which is the appointment’s bounding rectangle in the Scheduler view coordinate system (in pixels). |
Example
This example illustrates how to handle the SchedulerControl’s MouseUp event and use the SchedulerViewInfoBase.CalcHitInfo method to determine the visual element being clicked. If an appointment is hit, the method returns the AppointmentViewInfo object. To obtain the element under the mouse cursor, the AppointmentViewInfo.Items collection is analyzed. The coordinates provided by the Bounds property of a collection item are mapped to the coordinate system used in mouse events and subsequently compared with the cursor position.
private void schedulerControl1_MouseUp(object sender, MouseEventArgs e) {
if (e.Button == System.Windows.Forms.MouseButtons.Left) {
SchedulerViewInfoBase viewInfo = schedulerControl1.ActiveView.ViewInfo;
SchedulerHitInfo hitInfo = viewInfo.CalcHitInfo(e.Location, false);
if (hitInfo.HitTest == SchedulerHitTest.AppointmentContent) {
AppointmentViewInfo info = (AppointmentViewInfo)hitInfo.ViewInfo;
foreach (ViewInfoItem item in info.Items) {
ViewInfoImageItem imageItemInfo = item as ViewInfoImageItem;
if (imageItemInfo == null)
continue;
Rectangle itemBounds = info.ConvertToVisualBounds(item.Bounds);
if (itemBounds.Contains(e.Location)) {
using(var mb = new MyMessageBox(((ViewInfoImageItem)item).Image, "Got it!"))
mb.ShowDialog();
}
}
}
}
}