Share via


FrameworkElement.DefaultStyleKey Properti

Definisi

Mendapatkan atau mengatur kunci yang akan digunakan untuk mereferensikan gaya untuk kontrol ini, saat gaya tema digunakan atau ditentukan.

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

Nilai Properti

Kunci gaya. Untuk bekerja dengan benar sebagai bagian dari pencarian gaya tema, nilai ini diharapkan menjadi Type kontrol yang sedang ditata.

Contoh

Contoh berikut mengilustrasikan penggunaan penimpaan metadata properti dependensi yang dibahas dalam Keterangan. Kode ini mendefinisikan kelas NumericUpDown kontrol kustom yang dimaksudkan untuk digunakan dari rakitan pustaka kontrol khusus. Konstruktor statis yang diilustrasikan mereferensikan beberapa fungsi inisialisasi privat, mendaftarkan handler kelas (skenario subkelas kontrol umum lainnya; lihat Menandai Peristiwa Yang Dirutekan sebagai Ditangani, dan Penanganan Kelas) dan akhirnya menggantikan DefaultStyleKey metadata properti dependensi pada NumericUpDown kelas. DefaultStyleKey selalu mengembalikan jenisnya sendiri sebagai kunci yang dimaksudkan, yang merupakan konvensi yang digunakan sistem gaya tema untuk mencari gaya untuk beberapa kontrol arbitrer jika tidak ditata.

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

Kode sumber lengkap untuk contoh ini tersedia untuk Visual Basic.

Keterangan

Properti ini biasanya tidak diatur melalui salah satu pengaktif properti langsungnya. Sebagai gantinya, Anda mengganti metadata khusus jenis properti dependensi ini setiap kali Anda membuat kelas turunan baru FrameworkElement . Saat Anda mendapatkan kontrol, panggil OverrideMetadata metode terhadap DefaultStyleKeyProperty pengidentifikasi, dalam konstruktor statis kelas turunan kontrol (atau inisialisasi kelas yang setara).

Kontrol biasanya mengambil alih nilai default properti ini menjadi jenisnya sendiri, tetapi dalam beberapa kasus juga dapat menggunakan jenis dasar di mana gaya dalam kamus tema ada. Ini hanya praktis jika templat kontrol kontrol dasar sepenuhnya menentukan representasi visual kontrol turunan tersebut, dan jika apa pun anggota tambahan yang diekspos jenis turunan tidak memerlukan elemen tambahan sebagai bagian dari templat kontrol.

Jika Anda ingin elemen atau kontrol Anda sengaja tidak menggunakan gaya tema, atur properti ke OverridesDefaultStyletrue.

Informasi Properti Dependensi

Bidang pengidentifikasi DefaultStyleKeyProperty
Properti metadata diatur ke true AffectsMeasure

Berlaku untuk

Lihat juga