Condividi tramite


Classe ItemPolicy

Aggiornamento: novembre 2007

Criterio che specifica un insieme di regole nella finestra di progettazione.

Spazio dei nomi:  Microsoft.Windows.Design.Policies
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Sintassi

Public MustInherit Class ItemPolicy

Dim instance As ItemPolicy
public abstract class ItemPolicy
public ref class ItemPolicy abstract
public abstract class ItemPolicy

Note

Derivare dalla classe astratta ItemPolicy per fornire un'associazione tra un insieme di elementi e i corrispondenti provider di funzionalità.

Utilizzare i criteri per individuare le funzionalità di estensibilità sugli elementi eseguiti nella finestra di progettazione. I criteri vengono utilizzati da strumenti, strumenti decorativi e altre aree estensibili della finestra di progettazione. La classe SelectionPolicy è un esempio di criterio che controlla le modifiche della selezione e genera l'evento PolicyItemsChanged quando la selezione viene modificata. La finestra di progettazione gestisce gli eventi di modifica per tutti i criteri in esecuzione ed effettua l'azione appropriata. Nel caso di SelectionPolicy, la finestra di progettazione esegue una query per il set di attività attive che devono essere disponibili e il set di strumenti decorativi che devono essere visibili nell'area di progettazione.

Viene attivata una singola istanza di un tipo di criterio quando la finestra di progettazione la individua nei metadati. I criteri durano per la durata della finestra di progettazione e non vengono mai disattivati a meno che non venga eliminata la finestra di progettazione stessa. Se si dispone di un criterio che contiene un riferimento a risorse globali del processo, implementare il metodo OnDeactivated, che viene chiamato quando termina il gestore dei criteri.

Esempi

Nell'esempio di codice seguente viene illustrato come implementare un criterio sostitutivo personalizzato per la selezione primaria. Per l'elenco di codice completo, vedere Procedura: creare un criterio sostitutivo.

' The DockPanelPolicy class implements a surrogate policy that
' provides container semantics for a selected item. By using 
' this policy, the DemoDockPanel container control offers 
' additional tasks and adorners on its children. 
Class DockPanelPolicy
    Inherits PrimarySelectionPolicy

    Public Overrides ReadOnly Property IsSurrogate() As Boolean 
        Get
            Return True
        End Get
    End Property

    Public Overrides Function GetSurrogateItems( _
        ByVal item As Microsoft.Windows.Design.Model.ModelItem) _
        As System.Collections.Generic.IEnumerable( _
        Of Microsoft.Windows.Design.Model.ModelItem)

        Dim parent As ModelItem = item.Parent

        Dim e As New System.Collections.Generic.List(Of ModelItem)

        If (parent IsNot Nothing) Then

            e.Add(parent)

        End If

        Return e

    End Function

End Class
// The DockPanelPolicy class implements a surrogate policy that
// provides container semantics for a selected item. By using 
// this policy, the DemoDockPanel container control offers 
// additional tasks and adorners on its children. 
class DockPanelPolicy : PrimarySelectionPolicy 
{
    public override bool IsSurrogate 
    {
        get 
        { 
            return true;
        }
    }

    public override IEnumerable<ModelItem> GetSurrogateItems(ModelItem item) 
    {
        ModelItem parent = item.Parent;

        if (parent != null)
        {
            yield return parent;
        }
    }
}

Gerarchia di ereditarietà

System.Object
  Microsoft.Windows.Design.Policies.ItemPolicy
    Microsoft.Windows.Design.Policies.SelectionPolicy

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri ItemPolicy

Spazio dei nomi Microsoft.Windows.Design.Policies

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

Altre risorse

Provider di funzionalità e connettori di funzionalità

Informazioni sull'estensibilità Progettazione WPF