Udostępnij za pośrednictwem


FrameworkElement.DefaultStyleKey Właściwość

Definicja

Pobiera lub ustawia klucz używany do odwoływanie się do stylu tej kontrolki, gdy są używane lub zdefiniowane style motywu.

protected public:
 property System::Object ^ DefaultStyleKey { System::Object ^ get(); void set(System::Object ^ value); };
protected internal object DefaultStyleKey { get; set; }
member this.DefaultStyleKey : obj with get, set
Protected Friend Property DefaultStyleKey As Object

Wartość właściwości

Klucz stylu. Aby działało poprawnie w ramach wyszukiwania stylu motywu, ta wartość powinna być Type częścią kontrolki, która jest stylizowana.

Przykłady

Poniższy przykład ilustruje użycie metadanych właściwości zależności omówione w uwagach. Ten kod definiuje niestandardową klasę NumericUpDown sterowania, która ma być używana z dedykowanego zestawu biblioteki kontrolek. Zilustrowany konstruktor statyczny odwołuje się do niektórych funkcji inicjowania prywatnego, rejestruje procedurę obsługi klas (inny typowy scenariusz podklasowania kontrolek; zobacz Oznaczanie trasowanych zdarzeń jako obsługiwane i Obsługa klas), a na koniec zastępuje DefaultStyleKey metadane właściwości zależności w NumericUpDown klasie. DefaultStyleKey Zawsze zwraca swój własny typ jako zamierzony klucz, czyli konwencję używaną przez system stylów motywu do wyszukiwania stylu dla dowolnej kontrolki w inny sposób bez stylu.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Automation.Peers;
using System.Windows.Automation.Provider;
using System.Windows.Automation;
using System.Globalization;
using System.Diagnostics;

namespace CustomControlLibrary
{
    public partial class NumericUpDown : Control
    {
        static NumericUpDown()
        {
            InitializeCommands();

            // Listen to MouseLeftButtonDown event to determine if slide should move focus to itself
            EventManager.RegisterClassHandler(typeof(NumericUpDown), 
                Mouse.MouseDownEvent, new MouseButtonEventHandler(NumericUpDown.OnMouseLeftButtonDown), true);

            DefaultStyleKeyProperty.OverrideMetadata(typeof(NumericUpDown), new FrameworkPropertyMetadata(typeof(NumericUpDown)));
        }
    }
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Input

Namespace CustomControlLibrary
    Public Partial Class NumericUpDown
        Inherits Control

        Shared Sub New()
            InitializeCommands()

            ' Listen to MouseLeftButtonDown event to determine if slide should move focus to itself
            EventManager.RegisterClassHandler(GetType(NumericUpDown), Mouse.MouseDownEvent, New MouseButtonEventHandler(AddressOf NumericUpDown.OnMouseLeftButtonDown), True)

            DefaultStyleKeyProperty.OverrideMetadata(GetType(NumericUpDown), New FrameworkPropertyMetadata(GetType(NumericUpDown)))
        End Sub
    End Class
End Namespace

Kompletny kod źródłowy dla tego przykładu jest dostępny dla języka Visual Basic.

Uwagi

Ta właściwość zazwyczaj nie jest ustawiana za pomocą żadnych metod dostępu właściwości bezpośrednich. Zamiast tego należy zastąpić metadane specyficzne dla typu tej właściwości zależności za każdym razem, gdy tworzysz nową FrameworkElement klasę pochodną. Po utworzeniu kontrolki wywołaj OverrideMetadata metodę względem DefaultStyleKeyProperty identyfikatora w konstruktorze statycznym klasy pochodnej kontrolki (lub równoważnej inicjalizacji klasy).

Kontrolka zwykle zastępuje wartość domyślną tej właściwości jako własny typ, ale w niektórych przypadkach może również użyć typu podstawowego, dla którego istnieje styl w słownikach motywów. Jest to praktyczne tylko wtedy, gdy szablony kontrolek podstawowych całkowicie definiują wizualną reprezentację tej pochodnej kontrolki, a jeśli jakiekolwiek dodatkowe elementy członkowskie udostępniane przez typy pochodne nie wymagają dodatkowych elementów w ramach szablonu kontrolki.

Jeśli chcesz, aby element lub kontrolka celowo nie korzystała ze stylów motywu OverridesDefaultStyle , ustaw właściwość na true.

Informacje dotyczące właściwości zależności

Pole identyfikatora DefaultStyleKeyProperty
Właściwości metadanych ustawione na true AffectsMeasure

Dotyczy

Zobacz też