HwndSource Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 HwndSourceParameters
true
. 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 ContentRendered |
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). |