HwndSource HwndSource HwndSource HwndSource Class

Определение

Представляет содержимое Windows Presentation Foundation (WPF) в окне Win32.Presents Windows Presentation Foundation (WPF) content in a Win32 window.

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
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
Наследование
Реализации

Комментарии

Важно!

Многие члены этого класса недоступны в зоне безопасности Интернета.Many members of this class are unavailable in the Internet security zone.

Объект HwndSource WPFWPF реализует окно,котороеможетсодержатьсодержимое.Win32Win32An HwndSource implements a Win32Win32 window that can contain WPFWPF content. WPFWPF Содержимое окна упорядочивается, измеряется и готовится к просмотру; оно является интерактивным для входных данных.The WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. Поскольку компонент специально разработан для взаимодействия с Win32Win32, этот класс Win32Win32 предоставляет несколько низкоуровневых функций. HwndSourceBecause the HwndSource is specifically designed to interoperate with Win32Win32, this class exposes several low-level Win32Win32 features. Этот класс можно использовать для следующих задач:You can use this class to do the following:

  • Укажите стили окон, стили классов окон и расширенные стили окна.Specify window styles, window class styles, and extended window styles.

  • Подсоедините процедуру окна.Hook the window procedure.

  • Предоставление доступа к дескриптору окна (HWND).Provide access to the window handle (HWND).

  • Уничтожить окно.Destroy the window.

HwndSource Класс предназначен для общего взаимодействия и не предназначен для управляемой оболочки HWND.The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. Как правило, он не предоставляет управляемые методы для управления окном или свойствами для проверки его состояния.In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. API - интерфейсыAPIs Win32Win32 Handle Win32Win32 Вместо этого класспредоставляетдоступкдескрипторуокна(HWND)черезсвойство,котороеможнопередатьспомощьюметодовPInvokeдляуправленияокном.HwndSourceInstead, the HwndSource class provides access to the Win32Win32 window handle (HWND) through the Handle property, which can be passed by means of PInvoke techniques to Win32Win32 API - интерфейсыAPIs in order to manipulate the window.

ФормированиеConstruction

Многие аспекты HwndSource можно указывать только во время создания.Many aspects of the HwndSource can only be specified at construction time. Чтобы создать HwndSource, сначала HwndSourceParameters Создайте структуру и заполните ее нужными параметрами.To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. К этим параметрам относятся следующие.These parameters include the following:

  • Классы, окна и расширенные стили окна.The class, window, and extended window styles. Для изменения стилей после создания окна необходимо использовать PInvoke.You must use PInvoke to change the styles after the window is created. Не все стили можно изменить после создания окна.Not all styles can be changed after the window is created. Перед изменением стилей окна обратитесь к документации.Win32Win32Consult the Win32Win32 documentation before changing window styles.

  • Начальное расположение окна.The initial position of the window.

  • Начальный размер окна, включающий, задан ли размер, или должен быть определен на основе определенного размера WPFWPF содержимого.The initial size of the window, which includes whether the size is specified or should be determined from the determined size of the WPFWPF content.

  • Родительское окно.The parent window.

  • Объект HwndSourceHook , включаемый в цепочку оконных процедур.The HwndSourceHook to include in the window procedure chain. При указании обработчика во время создания он получает все сообщения для окна.If you specify a hook at construction time, it receives all messages for the window. Можно использовать AddHook для добавления обработчика после создания окна.You can use AddHook to add a hook after the window is created.

  • Параметры прозрачности.The transparency settings. Окно верхнего уровня можно настроить для смешения с другими окнами на рабочем столе в соответствии с прозрачностью WPFWPF содержимого на пиксель.A top-level window can be configured to blend with the other windows on the desktop according to the per-pixel transparency of the WPFWPF content. Чтобы включить эту функцию, задайте UsesPerPixelOpacity HwndSourceParameters для trueсвойства в значение.To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. Это свойство может быть задано только во время создания и только с помощью HwndSource(HwndSourceParameters) сигнатуры конструктора и накладывает несколько ограничений.This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

После заполнения HwndSourceParameters структуры передайте ее HwndSource(HwndSourceParameters) в конструктор для HwndSource.After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

Время существования объектаObject Lifetime

Является обычным среда CLRcommon language runtime (CLR) объектом, и его время существования управляет сборщиком мусора. HwndSourceAn HwndSource is a regular среда CLRcommon language runtime (CLR) object, and its lifetime is managed by the garbage collector. Поскольку представляет неуправляемый ресурс, HwndSource реализует IDisposable. HwndSourceBecause the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. Синхронный вызов Dispose немедленно уничтожает окно, Win32Win32 если оно вызывается из потока владельца.Synchronously calling Dispose immediately destroys the Win32Win32 window if called from the owner thread. При вызове из другого потока Win32Win32 окно уничтожается асинхронно.If called from another thread, the Win32Win32 window is destroyed asynchronously. Для Dispose некоторых сценариев взаимодействия может потребоваться явный вызов из взаимодействия кода.Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

Процедуры окнаWindow Procedures

HwndSource Класс реализует свою собственную процедуру окна.The HwndSource class implements its own window procedure. Эта процедура окна используется для обработки важных оконных сообщений, таких как связанные с макетом, отрисовкой и вводом.This window procedure is used to process important window messages, such as those related to layout, rendering, and input. Тем не менее можно также подключить процедуру окна для собственного использования.However, you can also hook the window procedure for your own use. Вы можете указать собственный обработчик во время построения, задав HwndSourceParameters.HwndSourceHook свойство, или можно также использовать AddHook и RemoveHook для добавления и удаления обработчиков после создания окна.You can specify your own hook during construction by setting the HwndSourceParameters.HwndSourceHook property, or you can also use AddHook and RemoveHook to add and remove hooks after the window is created. Обработчики вызываются по последнему первому порядку, что позволяет обработчикам выполняться перед встроенной обработкой.The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. Фактические обработчики удерживаются слабой ссылкой.The actual hooks are held by a weak reference. Поэтому убедитесь, что вы управляете временем существования делегата-обработчика.Therefore, make sure that you manage the lifetime of your hook delegate.

Дополнительные сведения о HwndSource и других классах взаимодействия см. в разделе взаимодействие WPF и Win32.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Обратите внимание, что конструкторы HwndSource принимают параметры, аналогичные параметрам для Win32Win32 таких функций, как CreateWindowEx.Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32Win32 functions such as CreateWindowEx.

Преобразования масштаба не следует применять к RootVisual. HwndSourceScale transformations should not be applied to the RootVisual of an HwndSource. См. раздел RootVisualпримечания для.See Remarks for RootVisual.

Конструкторы

HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters)

Инициализирует новый экземпляр класса HwndSource, используя структуру, содержащую начальные установки.Initializes a new instance of the HwndSource class by using a structure that contains the initial settings.

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

Инициализирует новый экземпляр класса HwndSource, используя заданные стиль класса, стиль, расширенный стиль, позицию x-y, ширину, высоту, имя и родительское окно.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window.

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

Инициализирует новый экземпляр класса HwndSource, используя заданные стиль класса, стиль, расширенный стиль, позицию x-y, ширину, высоту, имя, родительское окно и значение, указывающее, должен ли размер окна определяться автоматически.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window, and by specifying whether the window is autosized.

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

Инициализирует новый экземпляр класса HwndSource, используя заданные стиль класса, стиль, расширенный стиль, позицию x-y, имя и родительское окно.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

Свойства

AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode

Получает значение, определяющее, нужно ли получать фокус Win32 для содержащего окно WPF для данного объекта HwndSource.Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks

Получает последовательность зарегистрированных приемников ввода.Gets a sequence of registered input sinks.

CompositionTarget CompositionTarget CompositionTarget CompositionTarget

Возвращает наглядный диспетчер размещенного окна.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode

Получает или задает значение AcquireHwndFocusInMenuMode для новых экземпляров HwndSource.Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher Dispatcher Dispatcher Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Handle Handle Handle Handle

Возвращает дескриптор окна для данного HwndSource.Gets the window handle for this HwndSource.

IsDisposed IsDisposed IsDisposed IsDisposed

Возвращает значение, показывающее, выполнена ли отмена Dispose() для данного HwndSource.Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore

Возвращает или задает указатель на интерфейс IKeyboardInputSite контейнера компонента.Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode RestoreFocusMode RestoreFocusMode RestoreFocusMode

Получает режим RestoreFocusMode для окна.Gets the RestoreFocusMode for the window.

RootVisual RootVisual RootVisual RootVisual

Получает или задает свойство RootVisual окна.Gets or sets the RootVisual of the window.

SizeToContent SizeToContent SizeToContent SizeToContent

Возвращает или задает значение, указывающее, как выполняется изменение размера окна в соответствии с его содержимым.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity

Возвращает значение, указывающее, учитывается ли значение непрозрачности каждого пикселя содержимого исходного окна.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

Методы

AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook)

Добавляет обработчик событий, получающий все сообщения окна.Adds an event handler that receives all window messages.

AddSource() AddSource() AddSource() AddSource()

Добавляет экземпляр производного класса PresentationSource в список известных источников презентаций.Adds a PresentationSource derived class instance to the list of known presentation sources.

(Inherited from PresentationSource)
CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners()

Задает для списка прослушивателей события ContentRendered значение null.Sets the list of listeners for the ContentRendered event to null.

(Inherited from PresentationSource)
CreateHandleRef() CreateHandleRef() CreateHandleRef() CreateHandleRef()

Возвращает дескриптор окна для HwndSource.Gets the window handle for the HwndSource. Дескриптор окна упаковывается как часть структуры HandleRef.The window handle is packaged as part of a HandleRef structure.

Dispose() Dispose() Dispose() Dispose()

Освобождает все управляемые ресурсы, используемые объектом HwndSource, и порождает событие Disposed.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr)

Возвращает объект HwndSource заданного окна.Returns the HwndSource object of the specified window.

GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore()

Возвращает визуальный целевой объект окна.Gets the visual target of the window.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore()

Возвращает значение, указывающее, имеет ли приемник или один из содержащихся в нем компонентов фокус ввода.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs)

Вызывается, когда значение DPI будет изменяться для окна.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys)

Вызывается, когда нажата одна из мнемоник (клавиш доступа) данного приемника.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Регистрирует интерфейс IKeyboardInputSink размещенного компонента.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook)

Удаляет обработчики событий, добавленные методом AddHook(HwndSourceHook).Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource() RemoveSource() RemoveSource() RemoveSource()

Удаляет экземпляр производного класса PresentationSource из списка известных источников презентаций.Removes a PresentationSource derived class instance from the list of known presentation sources.

(Inherited from PresentationSource)
RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual)

Обеспечивает уведомление об изменении корневого объекта Visual.Provides notification that the root Visual has changed.

(Inherited from PresentationSource)
TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest)

Устанавливает фокус на первую или последнюю позицию табуляции приемника.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys)

Обрабатывает ввод с клавиатуры на уровне сообщений о нажатии клавиши.Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys)

Обрабатывает входные сообщения WM_CHAR, WM_SYSCHAR, WM_DEADCHAR и WM_SYSDEADCHAR перед вызовом метода OnMnemonic(MSG, ModifierKeys).Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

События

AutoResized AutoResized AutoResized AutoResized

Генерируется, когда структура инициирует автоматическое изменение размера HwndSource.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered ContentRendered ContentRendered ContentRendered

Происходит, когда содержимое отрисовано и готово к взаимодействию с пользователем.Occurs when content is rendered and ready for user interaction.

(Inherited from PresentationSource)
Disposed Disposed Disposed Disposed

Генерируется при вызове метода Dispose() данного объекта.Occurs when the Dispose() method is called on this object.

DpiChanged DpiChanged DpiChanged DpiChanged

Создается при изменении разрешения монитора Hwnd или перемещении Hwnd на монитор с отличным разрешением (в точках на дюйм).Occurs when the DPI of the monitor of this Hwnd has changed, or the Hwnd is moved to a monitor with a different DPI.

SizeToContentChanged SizeToContentChanged SizeToContentChanged SizeToContentChanged

Происходит при изменении значения свойства SizeToContent.Occurs when the value of the SizeToContent property changes.

Явные реализации интерфейса

IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin()

Описание этого члена см. в разделе IList.Remove(Object).For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite

Описание этого члена см. в разделе KeyboardInputSite.For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Описание этого члена см. в разделе OnMnemonic(MSG, ModifierKeys).For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Описание этого члена см. в разделе RegisterKeyboardInputSink(IKeyboardInputSink).For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest)

Описание этого члена см. в разделе TabInto(TraversalRequest).For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Описание этого члена см. в разделе TranslateAccelerator(MSG, ModifierKeys).For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Описание этого члена см. в разделе TranslateChar(MSG, ModifierKeys).For a description of this member, see TranslateChar(MSG, ModifierKeys).

Применяется к

Дополнительно