Create Context Menu

  • 2 min to read

Click the Create Context Menu link and select the menu type to define the built-in context menu in XAML markup. You can also modify XAML according to your task's requirements.

WPFScheduler_SmartTag_AppointmentContextMenu

Implementing all ribbon elements requires much XAML coding. We recommend using the approach described below to reduce the code's length.

TIP

Use the Bar Actions to customize Scheduler's context menus by adding an action to the OptionsContextMenu.CellContextMenuActions, OptionsContextMenu.AppointmentContextMenuActions and OptionsContextMenu.TimeRulerContextMenuActions collections. Refer to the Pop-Up Menus document for more information.

You can see the generated XAML in the code sample below.

<dxsch:SchedulerControl.OptionsContextMenu>
    <dxsch:OptionsContextMenu>
        <dxsch:OptionsContextMenu.TimeRulerContextMenu>
            <dxb:PopupMenu>
                <dxb:BarButtonItem x:Name="TimeRuler_NewAppointment" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewAppointment}}"/>
                <dxb:BarButtonItem x:Name="TimeRuler_NewAllDayEvent" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewAllDayEvent}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="TimeRuler_NewRecurringAppointment" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewRecurringAppointment}}"/>
                <dxb:BarButtonItem x:Name="TimeRuler_NewRecurringEvent" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewRecurringEvent}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarSubItem x:Name="TimeRuler_SwitchView" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=SwitchView}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="TimeRuler_CustomizeTimeRuler" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=CustomizeTimeRuler}}"/>
                <dxb:BarLinkContainerItem x:Name="TimeRuler_SwitchTimeScale" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=SwitchTimeScale}}"/>
            </dxb:PopupMenu>
        </dxsch:OptionsContextMenu.TimeRulerContextMenu>
        <dxsch:OptionsContextMenu.CellContextMenu>
            <dxb:PopupMenu>
                <dxb:BarButtonItem x:Name="Cell_NewAppointment" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewAppointment}}"/>
                <dxb:BarButtonItem x:Name="Cell_NewAllDayEvent" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewAllDayEvent}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="Cell_NewRecurringAppointment" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewRecurringAppointment}}"/>
                <dxb:BarButtonItem x:Name="Cell_NewRecurringEvent" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Appointment_NewRecurringEvent}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="Cell_GotoToday" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Navigate_GotoToday}}"/>
                <dxb:BarButtonItem x:Name="Cell_GotoDate" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_Navigate_GotoDate}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarSubItem x:Name="Cell_TimeScales" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=CellContextMenu_SwitchTimeScale}}"/>
                <dxb:BarSubItem x:Name="Cell_TimeScaleCaptions" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Home_TimeScale_ShowTimeScaleCaptions}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarSubItem x:Name="Cell_SwitchView" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=SwitchView}}"/>
            </dxb:PopupMenu>
        </dxsch:OptionsContextMenu.CellContextMenu>
        <dxsch:OptionsContextMenu.AppointmentContextMenu>
            <dxb:PopupMenu>
                <dxb:BarButtonItem x:Name="Appointment_Open" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Actions_Open}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="Appointment_EditSeries" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Actions_EditSeries}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="Appointment_RestoreOccurrence" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Actions_RestoreOccurrence}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarSubItem x:Name="Appointment_ShowTimeAs" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Options_ShowTimeAs}}"/>
                <dxb:BarSubItem x:Name="Appointment_LabelAs" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Options_LabelAs}}"/>
                <dxb:BarItemLinkSeparator/>
                <dxb:BarButtonItem x:Name="Appointment_Delete" Style="{DynamicResource {dxscht:SchedulerCommandBarThemeKey ResourceKey=Items_Appointment_Actions_Delete}}"/>
            </dxb:PopupMenu>
        </dxsch:OptionsContextMenu.AppointmentContextMenu>
    </dxsch:OptionsContextMenu>
</dxsch:SchedulerControl.OptionsContextMenu>