Popup contesto
Un popup di contesto è il controllo principale nella visualizzazione ContextPopup del framework della barra multifunzione di Windows. Si tratta di un sistema di menu di scelta rapida avanzato esposto solo dal framework come estensione a un'implementazione della barra multifunzione, il framework non espone il popup contesto come controllo indipendente.
- Componenti del popup contesto
- Implementare il popup del contesto
- Proprietà popup di contesto
- Argomenti correlati
Componenti del popup contesto
Il popup di contesto è un contenitore logico per il menu di scelta rapida e Mini-Toolbar sotto-controlli esposti rispettivamente tramite gli elementi di markup ContextMenu e MiniToolbar :
- ContextMenu espone un menu di Comandi e raccolte.
- MiniToolbar espone una barra degli strumenti mobile di vari comandi, raccolte e controlli complessi, ad esempio il controllo carattere e la casella combinata.
Ogni sotto-controllo può essere visualizzato al massimo una volta in un popup di contesto.
La schermata seguente illustra il popup di contesto e i relativi sotto-controlli costitutivi.
Il popup di contesto è puramente concettuale e non espone alcuna funzionalità dell'interfaccia utente, ad esempio posizionamento o ridimensionamento.
Nota
Il popup di contesto viene in genere visualizzato facendo clic con il pulsante destro del mouse (o tramite il tasto di scelta rapida MAIUSC+F10) su un oggetto di interesse. Tuttavia, i passaggi necessari per visualizzare il popup contesto sono definiti dall'applicazione.
Implementare il popup del contesto
In modo simile ad altri controlli del framework della barra multifunzione di Windows, il popup di contesto viene implementato tramite un componente di markup che specifica i dettagli della presentazione e un componente di codice che ne gestisce la funzionalità.
Nella tabella seguente sono elencati i controlli supportati da ogni sotto-controllo Popup contesto.
Control | Mini-Toolbar | Menu di scelta rapida |
---|---|---|
Button | x | x |
Casella di controllo | x | x |
ComboBox | x | |
Pulsante a discesa | x | x |
Selezione colori a discesa | x | x |
Raccolta a discesa | x | x |
Controllo carattere | x | |
Pulsante Della Guida | ||
Raccolta della barra multifunzione | ||
Spinner | ||
Pulsante Di divisione | x | x |
Raccolta pulsanti di divisione | x | x |
Interruttore | x | x |
markup
Ogni sotto-controllo popup contesto deve essere dichiarato singolarmente nel markup.
Mini-Toolbar
Quando si aggiungono controlli a una mini-barra degli strumenti popup di contesto, è consigliabile considerare i due consigli seguenti:
- I controlli devono essere altamente riconoscibili e fornire funzionalità ovvie. La familiarità è chiave, poiché le etichette e le descrizioni comandi non sono esposte per i controlli di Mini-Toolbar.
- Ogni comando esposto da un controllo deve essere presentato altrove nell'interfaccia utente della barra multifunzione. L'Mini-Toolbar non supporta lo spostamento da tastiera.
Nell'esempio seguente viene illustrato il markup di base per un elemento MiniToolbar che contiene tre controlli Button .
Nota
Un elemento MenuGroup viene specificato per ogni riga di controlli nella mini-barra degli strumenti.
<MiniToolbar Name="MiniToolbar">
<MenuGroup>
<Button CommandName="cmdButton1" />
<Button CommandName="cmdButton2" />
<Button CommandName="cmdButton3" />
</MenuGroup>
</MiniToolbar>
Menu di scelta rapida
Nell'esempio seguente viene illustrato il markup di base per un elemento ContextMenu che contiene tre controlli Button .
Nota
Ogni set di controlli nell'elemento MenuGroup è separato da una barra orizzontale nel menu di scelta rapida.
<ContextMenu Name="ContextMenu">
<MenuGroup>
<Button CommandName="cmdCut" />
<Button CommandName="cmdCopy" />
<Button CommandName="cmdPaste" />
</MenuGroup>
</ContextMenu>
Anche se un popup di contesto può contenere al massimo uno di ogni sotto-controllo, sono valide più dichiarazioni di elemento ContextMenu e MiniToolbar nel markup della barra multifunzione. Ciò consente a un'applicazione di supportare varie combinazioni di controlli Menu di scelta rapida e Mini-Toolbar, in base ai criteri definiti dall'applicazione, ad esempio il contesto dell'area di lavoro.
Per altre informazioni, vedere l'elemento ContextMap .
Nell'esempio seguente viene illustrato il markup di base per l'elemento ContextPopup .
<ContextPopup>
<ContextPopup.MiniToolbars>
<MiniToolbar Name="MiniToolbar">
<MenuGroup>
<Button CommandName="cmdButton1" />
<Button CommandName="cmdButton2" />
<Button CommandName="cmdButton3" />
</MenuGroup>
</MiniToolbar>
</ContextPopup.MiniToolbars>
<ContextPopup.ContextMenus>
<ContextMenu Name="ContextMenu">
<MenuGroup>
<Button CommandName="cmdCut" />
<Button CommandName="cmdCopy" />
<Button CommandName="cmdPaste" />
</MenuGroup>
</ContextMenu>
</ContextPopup.ContextMenus>
<ContextPopup.ContextMaps>
<ContextMap CommandName="cmdContextMap" ContextMenu="ContextMenu" MiniToolbar="MiniToolbar"/>
</ContextPopup.ContextMaps>
</ContextPopup>
Codice
Per richiamare un popup contesto, il metodo IUIContextualUI::ShowAtLocation viene chiamato quando la finestra di primo livello dell'applicazione barra multifunzione riceve una notifica di WM_CONTEXTMENU.
In questo esempio viene illustrato come gestire la notifica di WM_CONTEXTMENU nel metodo WndProc() dell'applicazione della barra multifunzione.
case WM_CONTEXTMENU:
POINT pt;
POINTSTOPOINT(pt, lParam);
// ShowContextualUI method defined by the application.
ShowContextualUI (pt, hWnd);
break;
Nell'esempio seguente viene illustrato come un'applicazione della barra multifunzione può visualizzare il popup contesto in un percorso di schermata specifico usando il metodo IUIContextualUI::ShowAtLocation .
GetCurrentContext() ha un valore di come definito nell'esempio di cmdContextMap
markup precedente.
g_pApplication è un riferimento all'interfaccia IUIFramework .
HRESULT ShowContextualUI(POINT& ptLocation, HWND hWnd)
{
GetDisplayLocation(ptLocation, hWnd);
HRESULT hr = E_FAIL;
IUIContextualUI* pContextualUI = NULL;
if (SUCCEEDED(g_pFramework->GetView(
g_pApplication->GetCurrentContext(),
IID_PPV_ARGS(&pContextualUI))))
{
hr = pContextualUI->ShowAtLocation(ptLocation.x, ptLocation.y);
pContextualUI->Release();
}
return hr;
}
Il riferimento a IUIContextualUI può essere rilasciato prima che il popup di contesto venga ignorato, come illustrato nell'esempio precedente. Tuttavia, il riferimento deve essere rilasciato a un certo punto per evitare perdite di memoria.
Attenzione
L'Mini-Toolbar ha un effetto di dissolvenza predefinito basato sulla prossimità del puntatore del mouse. Per questo motivo, è consigliabile visualizzare il Mini-Toolbar più vicino al puntatore del mouse il più possibile. In caso contrario, a causa dei meccanismi di visualizzazione in conflitto, il Mini-Toolbar potrebbe non essere eseguito come previsto.
Proprietà popup di contesto
Non sono presenti chiavi di proprietà associate al controllo Popup contesto.
Argomenti correlati