HwndSource Sınıf

Tanım

Win32 penceresinde Windows Presentation Foundation (WPF) içeriği sunar.

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
Devralma
Uygulamalar

Açıklamalar

Önemli

Bu sınıfın birçok üyesi İnternet güvenlik bölgesinde kullanılamaz.

, HwndSource WPF içeriği içerebilen bir Win32 penceresi uygular. Penceredeki WPF içeriği düzenlenir, ölçülür ve işlenir; ve giriş için etkileşimlidir. HwndSource özellikle Win32 ile birlikte çalışması için tasarlandığından, bu sınıf birkaç alt düzey Win32 özelliğini kullanıma sunar. Aşağıdakileri yapmak için bu sınıfı kullanabilirsiniz:

  • Pencere stillerini, pencere sınıfı stillerini ve genişletilmiş pencere stillerini belirtin.

  • Pencere yordamını bağla.

  • Pencere tutamacına (HWND) erişim sağlayın.

  • Pencereyi yok et.

HwndSource sınıfı genel birlikte çalışabilirlik için tasarlanmıştır ve yönetilen HWND sarmalayıcısı olarak tasarlanmamıştır. Genel olarak, pencere veya durumunu incelemek için özellikleri işlemek için yönetilen yöntemler sağlamaz. Bunun yerine, HwndSource sınıfı özelliği aracılığıyla Handle Win32 pencere tutamacına (HWND) erişim sağlar ve bu, pencereyi işlemek için PInvoke teknikleri aracılığıyla Win32 API'lerine geçirilebilir.

İnşaat

öğesinin HwndSource birçok yönü yalnızca yapım zamanında belirtilebilir. oluşturmak HwndSourceiçin önce bir HwndSourceParameters yapı oluşturun ve istenen parametrelerle doldurun. Bu parametreler şunları içerir:

  • Sınıf, pencere ve genişletilmiş pencere stilleri. Pencere oluşturulduktan sonra stilleri değiştirmek için PInvoke kullanmalısınız. Pencere oluşturulduktan sonra tüm stiller değiştirilemez. Pencere stillerini değiştirmeden önce Win32 belgelerine bakın.

  • Pencerenin başlangıç konumu.

  • Pencerenin, boyutun belirtilip belirtilmediğinden veya WPF içeriğinin belirlenen boyutundan belirlenmesinden kaynaklanıp belirlenmeyeceğini içeren ilk boyutu.

  • Üst pencere.

  • HwndSourceHook pencere yordam zincirine dahil etmek için. Oluşturma zamanında bir kanca belirtirseniz, pencere için tüm iletileri alır. Pencere oluşturulduktan sonra kanca eklemek için kullanabilirsiniz AddHook .

  • Saydamlık ayarları. WPF içeriğinin piksel başına saydamlığına göre masaüstündeki diğer pencerelerle uyumlu olacak şekilde üst düzey bir pencere yapılandırılabilir. Bunu etkinleştirmek için içindeki özelliğini HwndSourceParameters olarak trueayarlayınUsesPerPixelOpacity. Bu özellik yalnızca inşaat zamanında ve yalnızca oluşturucu imzası aracılığıyla HwndSource(HwndSourceParameters) belirtilebilir ve çeşitli sınırlamalar uygular.

Yapıyı HwndSourceParameters doldurduktan sonra oluşturucusunun HwndSource(HwndSourceParameters) öğesine HwndSourcegeçirin.

Nesne Ömrü

, HwndSource normal bir ortak dil çalışma zamanı (CLR) nesnesidir ve yaşam süresi çöp toplayıcı tarafından yönetilir. HwndSource yönetilmeyen bir kaynağı temsil ettiğinden uygular HwndSourceIDisposable. Zaman uyumlu çağrısı Dispose , sahip iş parçacığından çağrılırsa Win32 penceresini hemen yok eder. Başka bir iş parçacığından çağrılırsa, Win32 penceresi zaman uyumsuz olarak yok edilir. Belirli birlikte çalışma senaryoları için birlikte çalışabilir koddan açıkça çağrı Dispose yapılması gerekebilir.

Pencere Yordamları

sınıfı HwndSource kendi pencere yordamını uygular. Bu pencere yordamı düzen, işleme ve girişle ilgili olanlar gibi önemli pencere iletilerini işlemek için kullanılır. Ancak, pencere yordamını kendi kullanımınız için de bağlayabilirsiniz. Özelliği ayarlayarak HwndSourceParameters.HwndSourceHook oluşturma sırasında kendi kancanızı belirtebilir veya pencere oluşturulduktan sonra kanca eklemek ve kaldırmak için ve RemoveHook kullanabilirsinizAddHook. Kancalar, yerleşik işlemeden önce kancalarınızın yürütülmesini sağlayan son ilk çıkar sırası tarafından çağrılır. Asıl kancalar zayıf bir başvuru tarafından tutulur. Bu nedenle, kanca temsilcinizin ömrünü yönettiğinizden emin olun.

ve diğer birlikte çalışma sınıfları hakkında HwndSource daha fazla bilgi için bkz. WPF ve Win32 Birlikte Çalışma.

Oluşturucularının HwndSourceCreateWindowEx gibi Win32 işlevlerinin parametrelerine benzeyen parametreleri nasıl aldıklarına dikkat edin.

Ölçek dönüştürmeleri öğesine HwndSourceuygulanmamalıdırRootVisual. için bkz. Açıklamalar RootVisual.

Oluşturucular

HwndSource(HwndSourceParameters)

İlk ayarları içeren bir yapı kullanarak sınıfının yeni bir örneğini HwndSource başlatır.

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

Belirtilen sınıf stili, stil, genişletilmiş stil, x-y konumu, genişlik, yükseklik, ad ve üst pencere ile sınıfın yeni bir örneğini HwndSource başlatır.

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

Belirtilen sınıf stili, stil, genişletilmiş stil, x-y konumu, genişlik, yükseklik, ad ve üst pencere ile ve pencerenin otomatikleştirilip otomatikleştirilmeyeceğini belirterek sınıfın yeni bir örneğini HwndSource başlatır.

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

Sınıfın HwndSource yeni bir örneğini belirtilen sınıf stili, stil, genişletilmiş stil, x-y konumu, ad ve üst pencere ile başlatır.

Özellikler

AcquireHwndFocusInMenuMode

Bu HwndSourceiçin pencere içeren WPF için Win32 odağının alınıp alınmayacağını belirleyen değeri alır.

ChildKeyboardInputSinks

Kayıtlı giriş havuzlarının sırasını alır.

CompositionTarget

Barındırılan pencere için görsel yöneticisini alır.

DefaultAcquireHwndFocusInMenuMode

yeni örnekleri HwndSourceiçin varsayılan AcquireHwndFocusInMenuMode değeri alır veya ayarlar.

Dispatcher

Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini alır.

(Devralındığı yer: DispatcherObject)
Handle

Bu HwndSourceiçin pencere tutamacını alır.

IsDisposed

Bu HwndSourceüzerinde çağrılıp çağrılmadığını Dispose() belirten bir değer alır.

KeyboardInputSiteCore

Bileşenin kapsayıcı IKeyboardInputSite arabirimine bir başvuru alır veya ayarlar.

RestoreFocusMode

Pencere için öğesini RestoreFocusMode alır.

RootVisual

Pencerenin öğesini RootVisual alır veya ayarlar.

SizeToContent

Pencerenin içeriğine göre boyutlandırılıp boyutlandırılmayacağını ve nasıl boyutlandırılıp boyutlandırılmayacağını alır veya ayarlar.

UsesPerPixelOpacity

Kaynak pencere içeriğinin piksel başına opaklığına uyulup uyulmadığını bildiren bir değer alır.

Yöntemler

AddHook(HwndSourceHook)

Tüm pencere iletilerini alan bir olay işleyicisi ekler.

AddSource()

Bilinen sunu kaynakları listesine türetilmiş bir PresentationSource sınıf örneği ekler.

(Devralındığı yer: PresentationSource)
CheckAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler.

(Devralındığı yer: DispatcherObject)
ClearContentRenderedListeners()

Olayın dinleyici ContentRendered listesini olarak nullayarlar.

(Devralındığı yer: PresentationSource)
CreateHandleRef()

için pencere tutamacını HwndSourcealır. Pencere tutamacı bir HandleRef yapının parçası olarak paketlenmiş.

Dispose()

tarafından HwndSourcekullanılan tüm yönetilen kaynakları serbest bırakır ve olayı başlatır Disposed .

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FromHwnd(IntPtr)

HwndSource Belirtilen pencerenin nesnesini döndürür.

GetCompositionTargetCore()

Pencerenin görsel hedefini alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
HasFocusWithinCore()

Havuzun veya içerdiği bileşenlerden birinin odaklanıp odaklanmadığını belirten bir değer alır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Pencere için DPI değiştirildiğinde çağrılır.

OnMnemonicCore(MSG, ModifierKeys)

Bu havuz için anımsatıcılardan (erişim anahtarları) biri çağrıldığında çağrılır.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Kapsanan IKeyboardInputSink bileşenin arabirimini kaydeder.

RemoveHook(HwndSourceHook)

tarafından AddHook(HwndSourceHook)eklenen olay işleyicilerini kaldırır.

RemoveSource()

Türetilmiş bir PresentationSource sınıf örneğini bilinen sunu kaynakları listesinden kaldırır.

(Devralındığı yer: PresentationSource)
RootChanged(Visual, Visual)

Kökün Visual değiştiğine ilişkin bildirim sağlar.

(Devralındığı yer: PresentationSource)
TabIntoCore(TraversalRequest)

Odağı, havuzun ilk sekme durağına veya son sekme durağına ayarlar.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Klavye girişini tuş aşağı ileti düzeyinde işler.

TranslateCharCore(MSG, ModifierKeys)

Yöntem çağrılmadan önce OnMnemonic(MSG, ModifierKeys) WM_CHAR, WM_SYSCHAR, WM_DEADCHAR ve WM_SYSDEADCHAR giriş iletilerini işler.

VerifyAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar.

(Devralındığı yer: DispatcherObject)

Ekinlikler

AutoResized

Düzen öğesinin otomatik olarak yeniden boyutlandırmasına neden HwndSource olduğunda gerçekleşir.

ContentRendered

İçerik işlendiğinde ve kullanıcı etkileşimi için hazır olduğunda gerçekleşir.

(Devralındığı yer: PresentationSource)
Disposed

Yöntemi bu nesnede Dispose() çağrıldığında gerçekleşir.

DpiChanged

Bu Hwnd izleyicisinin DPI'si değiştiğinde veya Hwnd farklı bir DPI'ye sahip bir monitöre taşındığında gerçekleşir.

SizeToContentChanged

Özelliğin değeri değiştiğinde SizeToContent gerçekleşir.

Belirtik Arabirim Kullanımları

IKeyboardInputSink.HasFocusWithin()

Bu üyenin açıklaması için bkz IList.Remove(Object). .

IKeyboardInputSink.KeyboardInputSite

Bu üyenin açıklaması için bkz KeyboardInputSite. .

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Bu üyenin açıklaması için bkz OnMnemonic(MSG, ModifierKeys). .

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Bu üyenin açıklaması için bkz RegisterKeyboardInputSink(IKeyboardInputSink). .

IKeyboardInputSink.TabInto(TraversalRequest)

Bu üyenin açıklaması için bkz TabInto(TraversalRequest). .

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Bu üyenin açıklaması için bkz TranslateAccelerator(MSG, ModifierKeys). .

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Bu üyenin açıklaması için bkz TranslateChar(MSG, ModifierKeys). .

Şunlara uygulanır

Ayrıca bkz.