private void Construct(KryptonContextMenuCollection items,
bool keyboardActivated)
{
// Ask the top level collection to generate the child view elements
items.GenerateView(_provider, this, _viewColumns, true, true);
// Create the control panel canvas
ViewDrawCanvas mainBackground = new ViewDrawCanvas(_provider.ProviderStateCommon.ControlInner.Back, _provider.ProviderStateCommon.ControlInner.Border, VisualOrientation.Top);
mainBackground.Add(_viewColumns);
ViewLayoutDocker layoutDocker = new ViewLayoutDocker();
Padding outerPadding = _provider.ProviderRedirector.GetMetricPadding(PaletteState.Normal, PaletteMetricPadding.ContextMenuItemOuter);
layoutDocker.Add(new ViewLayoutSeparator(outerPadding.Top), ViewDockStyle.Top);
layoutDocker.Add(new ViewLayoutSeparator(outerPadding.Bottom), ViewDockStyle.Bottom);
layoutDocker.Add(new ViewLayoutSeparator(outerPadding.Left), ViewDockStyle.Left);
layoutDocker.Add(new ViewLayoutSeparator(outerPadding.Right), ViewDockStyle.Right);
layoutDocker.Add(mainBackground, ViewDockStyle.Fill);
// Create the docking element that gives us a border and background
_drawDocker = new ViewDrawDocker(_provider.ProviderStateCommon.ControlOuter.Back, _provider.ProviderStateCommon.ControlOuter.Border, null);
_drawDocker.Add(layoutDocker, ViewDockStyle.Fill);
_drawDocker.KeyController = new ContextMenuController((ViewContextMenuManager)ViewManager);
ViewManager.Root = _drawDocker;
// With keyboard activate we select the first valid item
if (keyboardActivated)
((ViewContextMenuManager)ViewManager).KeyDown();
}