HwndSource Kelas

Definisi

Menyajikan konten Windows Presentation Foundation (WPF) dalam jendela Win32.

public ref class HwndSource : System::Windows::PresentationSource, IDisposable, System::Windows::Interop::IKeyboardInputSink, System::Windows::Interop::IWin32Window
public class HwndSource : System.Windows.PresentationSource, IDisposable, System.Windows.Interop.IKeyboardInputSink, System.Windows.Interop.IWin32Window
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IWin32Window
    interface IKeyboardInputSink
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IKeyboardInputSink
    interface IWin32Window
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
Warisan
Penerapan

Keterangan

Penting

Banyak anggota kelas ini tidak tersedia di zona keamanan Internet.

Mengimplementasikan HwndSource jendela Win32 yang dapat berisi konten WPF. Konten WPF di jendela diatur, diukur, dan dirender; dan interaktif terhadap input. HwndSource Karena dirancang khusus untuk beroperasi dengan Win32, kelas ini memaparkan beberapa fitur Win32 tingkat rendah. Anda dapat menggunakan kelas ini untuk melakukan hal berikut:

  • Tentukan gaya jendela, gaya kelas jendela, dan gaya jendela yang diperluas.

  • Kaitkan prosedur jendela.

  • Menyediakan akses ke handel jendela (HWND).

  • Hancurkan jendelanya.

Kelas HwndSource ini dirancang untuk interoperabilitas umum dan tidak dirancang sebagai pembungkus HWND terkelola. Secara umum, ini tidak menyediakan metode terkelola untuk memanipulasi jendela atau properti untuk memeriksa statusnya. Sebaliknya, HwndSource kelas menyediakan akses ke handel jendela Win32 (HWND) melalui Handle properti , yang dapat diteruskan dengan cara teknik PInvoke ke API Win32 untuk memanipulasi jendela.

Konstruksi

Banyak aspek HwndSource hanya dapat ditentukan pada waktu konstruksi. Untuk membuat HwndSource, pertama-tama buat HwndSourceParameters struktur dan isi dengan parameter yang diinginkan. Parameter ini mencakup hal-hal berikut:

  • Kelas, jendela, dan gaya jendela yang diperluas. Anda harus menggunakan PInvoke untuk mengubah gaya setelah jendela dibuat. Tidak semua gaya dapat diubah setelah jendela dibuat. Lihat dokumentasi Win32 sebelum mengubah gaya jendela.

  • Posisi awal jendela.

  • Ukuran awal jendela, yang mencakup apakah ukuran ditentukan atau harus ditentukan dari ukuran konten WPF yang ditentukan.

  • Jendela induk.

  • untuk HwndSourceHook disertakan dalam rantai prosedur jendela. Jika Anda menentukan kait pada waktu konstruksi, kait akan menerima semua pesan untuk jendela. Anda dapat menggunakan AddHook untuk menambahkan hook setelah jendela dibuat.

  • Pengaturan transparansi. Jendela tingkat atas dapat dikonfigurasi untuk memadukan dengan jendela lain di desktop sesuai dengan transparansi per piksel konten WPF. Untuk mengaktifkan ini, atur UsesPerPixelOpacity properti di ke HwndSourceParameterstrue. Properti ini hanya dapat ditentukan pada waktu konstruksi, dan hanya melalui HwndSource(HwndSourceParameters) tanda tangan konstruktor, dan memberlakukan beberapa batasan.

Setelah Anda mengisi HwndSourceParameters struktur, teruskan ke HwndSource(HwndSourceParameters) konstruktor untuk HwndSource.

Masa Pakai objek

HwndSource adalah objek runtime bahasa umum (CLR) biasa, dan masa pakainya dikelola oleh pengumpul sampah. HwndSource Karena mewakili sumber daya yang tidak dikelola, HwndSource mengimplementasikan IDisposable. Panggilan sinkron Dispose segera menghancurkan jendela Win32 jika dipanggil dari utas pemilik. Jika dipanggil dari utas lain, jendela Win32 dihancurkan secara asinkron. Memanggil Dispose secara eksplisit dari kode interoperabilitas mungkin diperlukan untuk skenario interoperasi tertentu.

Prosedur Jendela

Kelas menerapkan HwndSource prosedur jendelanya sendiri. Prosedur jendela ini digunakan untuk memproses pesan jendela penting, seperti yang terkait dengan tata letak, penyajian, dan input. Namun, Anda juga dapat menghubungkan prosedur jendela untuk penggunaan Anda sendiri. Anda dapat menentukan kait Anda sendiri selama konstruksi dengan mengatur HwndSourceParameters.HwndSourceHook properti , atau Anda juga dapat menggunakan AddHook dan RemoveHook untuk menambahkan dan menghapus kait setelah jendela dibuat. Hook dipanggil dengan urutan first-out terakhir, yang memungkinkan kait Anda untuk mengeksekusi sebelum pemrosesan bawaan. Kait aktual dipegang oleh referensi yang lemah. Oleh karena itu, pastikan Anda mengelola masa pakai delegasi kait Anda.

Untuk informasi selengkapnya tentang HwndSource dan kelas interoperabilitas lainnya, lihat Interoperabilitas WPF dan Win32.

Perhatikan bagaimana konstruktor untuk HwndSource mengambil parameter yang menyerupai parameter untuk fungsi Win32 seperti CreateWindowEx.

Transformasi skala tidak boleh diterapkan ke RootVisual dari HwndSource. Lihat Keterangan untuk RootVisual.

Konstruktor

HwndSource(HwndSourceParameters)

Menginisialisasi instans HwndSource baru kelas dengan menggunakan struktur yang berisi pengaturan awal.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Menginisialisasi instans HwndSource baru kelas dengan gaya kelas, gaya, gaya yang diperluas, posisi x-y, lebar, tinggi, nama, dan jendela induk tertentu.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean)

Menginisialisasi instans HwndSource baru kelas dengan gaya kelas, gaya, gaya yang diperluas, posisi x-y, lebar, tinggi, nama, dan jendela induk tertentu, dan dengan menentukan apakah jendela diotomatisasi.

HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Menginisialisasi instans HwndSource baru kelas dengan gaya kelas, gaya, gaya yang diperluas, posisi x-y, nama, dan jendela induk tertentu.

Properti

AcquireHwndFocusInMenuMode

Mendapatkan nilai yang menentukan apakah akan memperoleh fokus Win32 untuk WPF yang berisi jendela untuk ini HwndSource.

ChildKeyboardInputSinks

Mendapatkan urutan sink input terdaftar.

CompositionTarget

Mendapatkan manajer visual untuk jendela yang dihosting.

DefaultAcquireHwndFocusInMenuMode

Mendapatkan atau menetapkan nilai default AcquireHwndFocusInMenuMode untuk instans HwndSourcebaru .

Dispatcher

Dispatcher Mendapatkan ini DispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)
Handle

Mendapatkan handel jendela untuk ini HwndSource.

IsDisposed

Mendapatkan nilai yang menunjukkan apakah Dispose() telah dipanggil pada ini HwndSource.

KeyboardInputSiteCore

Mendapatkan atau mengatur referensi ke antarmuka kontainer IKeyboardInputSite komponen.

RestoreFocusMode

RestoreFocusMode Mendapatkan untuk jendela.

RootVisual

Mendapatkan atau mengatur RootVisual jendela.

SizeToContent

Mendapatkan atau mengatur apakah dan bagaimana jendela berukuran sesuai kontennya.

UsesPerPixelOpacity

Mendapatkan nilai yang menyatakan apakah tingkat keburaman per piksel konten jendela sumber dihormati.

Metode

AddHook(HwndSourceHook)

Menambahkan penanganan aktivitas yang menerima semua pesan jendela.

AddSource()

Menambahkan instans PresentationSource kelas turunan ke daftar sumber presentasi yang diketahui.

(Diperoleh dari PresentationSource)
CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
ClearContentRenderedListeners()

Mengatur daftar pendengar untuk peristiwa ke ContentRenderednull.

(Diperoleh dari PresentationSource)
CreateHandleRef()

Mendapatkan handel jendela untuk HwndSource. Handel jendela dibungkus sebagai bagian HandleRef dari struktur.

Dispose()

Merilis semua sumber daya terkelola yang digunakan oleh HwndSource, dan meningkatkan Disposed peristiwa.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
FromHwnd(IntPtr)

Mengembalikan HwndSource objek dari jendela yang ditentukan.

GetCompositionTargetCore()

Mendapatkan target visual jendela.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
HasFocusWithinCore()

Mendapatkan nilai yang menunjukkan apakah sink atau salah satu komponen yang terkandung memiliki fokus.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Dipanggil ketika DPI akan berubah untuk jendela.

OnMnemonicCore(MSG, ModifierKeys)

Dipanggil ketika salah satu mnemonics (kunci akses) untuk sink ini dipanggil.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Mendaftarkan IKeyboardInputSink antarmuka komponen yang terkandung.

RemoveHook(HwndSourceHook)

Menghapus penanganan aktivitas yang ditambahkan oleh AddHook(HwndSourceHook).

RemoveSource()

Menghapus instans PresentationSource kelas turunan dari daftar sumber presentasi yang diketahui.

(Diperoleh dari PresentationSource)
RootChanged(Visual, Visual)

Menyediakan pemberitahuan bahwa akar Visual telah berubah.

(Diperoleh dari PresentationSource)
TabIntoCore(TraversalRequest)

Mengatur fokus pada pemberhentian tab pertama atau perhentian tab terakhir sink.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Memproses input keyboard pada tingkat pesan key-down.

TranslateCharCore(MSG, ModifierKeys)

Memproses pesan input WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, dan WM_SYSDEADCHAR sebelum metode dipanggil OnMnemonic(MSG, ModifierKeys) .

VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)

Acara

AutoResized

Terjadi ketika tata letak menyebabkan HwndSource mengubah ukuran secara otomatis.

ContentRendered

Terjadi ketika konten dirender dan siap untuk interaksi pengguna.

(Diperoleh dari PresentationSource)
Disposed

Terjadi ketika Dispose() metode dipanggil pada objek ini.

DpiChanged

Terjadi ketika DPI monitor Hwnd ini telah berubah, atau Hwnd dipindahkan ke monitor dengan DPI yang berbeda.

SizeToContentChanged

Terjadi ketika nilai SizeToContent properti berubah.

Implementasi Antarmuka Eksplisit

IKeyboardInputSink.HasFocusWithin()

Untuk deskripsi anggota ini, lihat IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Untuk deskripsi anggota ini, lihat KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Untuk deskripsi anggota ini, lihat OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Untuk deskripsi anggota ini, lihat RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Untuk deskripsi anggota ini, lihat TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Untuk deskripsi anggota ini, lihat TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Untuk deskripsi anggota ini, lihat TranslateChar(MSG, ModifierKeys).

Berlaku untuk

Lihat juga