Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
È possibile condividere un oggetto ContextMenu con più controlli definendo ContextMenu come risorsa e impostando la proprietà ContextMenu dei controlli su un riferimento di ContextMenu. È possibile specificare se i controlli condividono lo stesso oggetto ContextMenu o se ogni controllo dispone di un proprio oggetto ContextMenu impostando la proprietà Attributo x:Shared
Esempio
Nell'esempio riportato di seguito viene creato ContextMenu come risorsa e vengono assegnati riferimenti a quattro controlli. Nell'esempio Attributo x:Shared viene impostato su ContextMenu su true, pertanto i quattro controlli condividono la stessa istanza di ContextMenu. È possibile verificare questa condizione selezionando il primo oggetto MenuItem nell'oggetto ContextMenu di un controllo e osservando che MenuItem viene selezionato nell'oggetto ContextMenu degli altri controlli.
<ContextMenu x:Key="SharedInstanceContextMenu" x:Shared="True">
<MenuItem Header="This MenuItem is checkable" IsCheckable="True" />
<Separator/>
<MenuItem Header="This is a regular MenuItem" />
</ContextMenu>
...
<Button Margin="0,5,0,0" Background="LightBlue"
Content="This Button has a ContextMenu"
ContextMenu="{DynamicResource SharedInstanceContextMenu}" />
<Button Background="Pink"
Content="This Button has the same ContextMenu"
ContextMenu="{DynamicResource SharedInstanceContextMenu}" />
<CheckBox BorderBrush="Red"
Content="This Check Box has the same ContextMenu"
ContextMenu="{DynamicResource SharedInstanceContextMenu}" />
<CheckBox BorderBrush="Green"
Content="This Check Box has the same ContextMenu"
ContextMenu="{DynamicResource SharedInstanceContextMenu}" />
Nell'esempio riportato di seguito viene creato ContextMenu come risorsa e vengono assegnati riferimenti a quattro controlli. Nell'esempio Attributo x:Shared viene impostato su ContextMenu su false, pertanto per ogni controllo viene utilizzata una nuova istanza di ContextMenu. È possibile verificare questa condizione selezionando il primo oggetto MenuItem nell'oggetto ContextMenu di un controllo e osservando che MenuItem non viene selezionato nell'oggetto ContextMenu degli altri controlli.
<ContextMenu x:Key="NonsharedInstanceContextMenu" x:Shared="False">
<MenuItem Header="This MenuItem is checkable" IsCheckable="true" />
<Separator/>
<MenuItem Header="This is a regular MenuItem" />
</ContextMenu>
...
<Button Background="LightBlue" Margin="0,5,0,0"
Content="This Button has a ContextMenu"
ContextMenu="{DynamicResource NonsharedInstanceContextMenu}" />
<Button Background="Pink"
Content="This Button has the same ContextMenu"
ContextMenu="{DynamicResource NonsharedInstanceContextMenu}" />
<CheckBox BorderBrush="Red"
Content="This Check Box has the same ContextMenu"
ContextMenu="{DynamicResource NonsharedInstanceContextMenu}" />
<CheckBox BorderBrush="Green"
Content="This Check Box has the same ContextMenu"
ContextMenu="{DynamicResource NonsharedInstanceContextMenu}" />
Per l'esempio completo, vedere Esempio di oggetto ContextMenu condiviso tra più controlli.
Vedere anche
Attività
Procedura: attivare un oggetto ContextMenu su un controllo disattivato
Concetti
Cenni preliminari sull'oggetto ContextMenu