Поделиться через


HwndSource Класс

Определение

Представляет содержимое Windows Presentation Foundation (WPF) в окне 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
Наследование
Реализации

Комментарии

Это важно

Многие члены этого класса недоступны в зоне безопасности Интернета.

Реализует HwndSource окно Win32, которое может содержать содержимое WPF. Содержимое WPF в окне упорядочено, измеряется и отрисовывается; и является интерактивным для ввода. Так как этот HwndSource класс специально предназначен для взаимодействия с Win32, этот класс предоставляет несколько низкоуровневых функций Win32. Этот класс можно использовать для выполнения следующих действий:

  • Укажите стили окон, стили классов окон и расширенные стили окон.

  • Перехватчик процедуры окна.

  • Предоставьте доступ к дескриптору окна (HWND).

  • Уничтожить окно.

Класс HwndSource предназначен для общего взаимодействия и не предназначен в качестве управляемой оболочки HWND. Как правило, он не предоставляет управляемые методы для управления окном или свойствами для проверки его состояния. Вместо этого HwndSource класс предоставляет доступ к дескриптору окна Win32 (HWND) через Handle свойство, которое можно передать с помощью методов PInvoke в API Win32 для управления окном.

Создание экземпляра

Во время строительства можно указать только многие аспекты HwndSource . Чтобы создать структуру, сначала создайте HwndSourceструктуру HwndSourceParameters и заполните ее нужными параметрами. К этим параметрам относятся следующие параметры:

  • Класс, окно и расширенные стили окон. Чтобы изменить стили после создания окна, необходимо использовать PInvoke. Не все стили можно изменить после создания окна. Перед изменением стилей окон обратитесь к документации по Win32.

  • Начальная позиция окна.

  • Начальный размер окна, который включает, указан или должен быть определен из определенного размера содержимого WPF.

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

  • Значение HwndSourceHook для включения в цепочку процедур окна. Если указать крючок во время строительства, он получает все сообщения для окна. После создания окна можно добавить AddHook перехватчик.

  • Параметры прозрачности. Окно верхнего уровня можно настроить для смешивания с другими окнами на рабочем столе в соответствии с прозрачностью содержимого WPF на пикселях. Чтобы включить это, задайте UsesPerPixelOpacity для свойства значение HwndSourceParameterstrue. Это свойство можно указать только во время строительства, и только с помощью HwndSource(HwndSourceParameters) подписи конструктора, и оно накладывает несколько ограничений.

После заполнения HwndSourceParameters структуры передайте его HwndSource(HwndSourceParameters) конструктору для объекта HwndSource.

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

Это HwndSource обычный объект среды CLR, и его время существования управляет сборщик мусора. Так как представляет HwndSource неуправляемый ресурс, HwndSource реализуется IDisposable. Синхронно вызывая Dispose немедленно уничтожает окно Win32 при вызове из потока владельца. При вызове из другого потока окно Win32 уничтожается асинхронно. Для определенных сценариев взаимодействия может потребоваться явное вызов Dispose из кода взаимодействия.

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

Класс HwndSource реализует собственную процедуру окна. Эта процедура окна используется для обработки важных сообщений окна, таких как связанные с макетом, отрисовкой и входными данными. Однако можно также подключить процедуру окна для собственного использования. Вы можете указать собственный крючок во время строительства, задав HwndSourceParameters.HwndSourceHook свойство, или вы также можете использовать AddHook и RemoveHook добавлять и удалять перехватчики после создания окна. Перехватчики вызываются в порядке последней очереди, что позволяет перехватчикам выполняться до встроенной обработки. Фактические крючки удерживаются слабой ссылкой. Поэтому убедитесь, что вы управляете временем существования делегата перехватчика.

Дополнительные сведения и другие классы взаимодействия см. в HwndSource разделе WPF и Win32 Interoperation.

Обратите внимание, как конструкторы для HwndSource принятия параметров, похожих на параметры для функций Win32, таких как CreateWindowEx.

Преобразования масштабирования не должны применяться к RootVisual объекту HwndSource. См. примечания.RootVisual

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

Имя Описание
HwndSource(HwndSourceParameters)

Инициализирует новый экземпляр HwndSource класса с помощью структуры, содержащей начальные параметры.

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

Инициализирует новый экземпляр HwndSource класса с указанным стилем, стилем, расширенным стилем, положением x-y, шириной, высотой, именем и родительским окном, а также путем указания того, выполняется ли окно автоматически.

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

Инициализирует новый экземпляр HwndSource класса с указанным стилем, стилем, расширенным стилем, положением x-y, шириной, высотой, именем и родительским окном.

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

Инициализирует новый экземпляр HwndSource класса с указанным стилем класса, стилем, расширенным стилем, положением x-y, именем и родительским окном.

Свойства

Имя Описание
AcquireHwndFocusInMenuMode

Возвращает значение, определяющее, следует ли получить фокус Win32 для WPF, содержащего окно для этого HwndSource.

ChildKeyboardInputSinks

Возвращает последовательность зарегистрированных приемников входных данных.

CompositionTarget

Возвращает визуальный диспетчер для размещенного окна.

DefaultAcquireHwndFocusInMenuMode

Возвращает или задает значение по умолчанию AcquireHwndFocusInMenuMode для новых экземпляров HwndSource.

Dispatcher

Dispatcher Возвращает это DispatcherObject значение, с которым связано.

(Унаследовано от DispatcherObject)
Handle

Возвращает дескриптор окна для этого HwndSource.

IsDisposed

Возвращает значение, указывающее, был ли Dispose() вызван этот HwndSourceпараметр.

KeyboardInputSiteCore

Возвращает или задает ссылку на интерфейс контейнера IKeyboardInputSite компонента.

RestoreFocusMode

RestoreFocusMode Возвращает окно.

RootVisual

Возвращает или задает RootVisual окно.

SizeToContent

Получите или задает ли окно размера содержимого.

UsesPerPixelOpacity

Возвращает значение, указывающее, учитывается ли непрозрачность исходного окна на пиксель.

Методы

Имя Описание
AddHook(HwndSourceHook)

Добавляет обработчик событий, который получает все сообщения окна.

AddSource()

Добавляет экземпляр производного PresentationSource класса в список известных источников презентации.

(Унаследовано от PresentationSource)
CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
ClearContentRenderedListeners()

Задает список прослушивателей для ContentRendered события null.

(Унаследовано от PresentationSource)
CreateHandleRef()

Возвращает дескриптор HwndSourceокна для . Дескриптор окна упаковается как часть HandleRef структуры.

Dispose()

Освобождает все управляемые ресурсы, используемые HwndSourceи вызывает Disposed событие.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FromHwnd(IntPtr)

HwndSource Возвращает объект указанного окна.

GetCompositionTargetCore()

Возвращает визуальный объект окна.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
HasFocusWithinCore()

Возвращает значение, указывающее, имеет ли приемник или один из его содержащихся компонентов фокус.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Вызывается, когда DPI изменится для окна.

OnMnemonicCore(MSG, ModifierKeys)

Вызывается при вызове одного из mnemonics (ключей доступа) для этого приемника.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

IKeyboardInputSink Регистрирует интерфейс автономного компонента.

RemoveHook(HwndSourceHook)

Удаляет обработчики событий, добавленные AddHook(HwndSourceHook).

RemoveSource()

Удаляет производный PresentationSource экземпляр класса из списка известных источников презентации.

(Унаследовано от PresentationSource)
RootChanged(Visual, Visual)

Предоставляет уведомление об изменении корневого каталога Visual .

(Унаследовано от PresentationSource)
TabIntoCore(TraversalRequest)

Задает фокус на первой остановке вкладки или последней остановке вкладки приемника.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Обрабатывает входные данные клавиатуры на уровне сообщения вниз по клавишам.

TranslateCharCore(MSG, ModifierKeys)

Обрабатывает WM_CHAR, WM_SYSCHAR, WM_DEADCHAR и WM_SYSDEADCHAR входные сообщения перед вызовом OnMnemonic(MSG, ModifierKeys) метода.

VerifyAccess()

Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

События

Имя Описание
AutoResized

Происходит при автоматическом изменении размера макета HwndSource .

ContentRendered

Происходит при отображении содержимого и готовности к взаимодействию с пользователем.

(Унаследовано от PresentationSource)
Disposed

Происходит при вызове Dispose() метода для этого объекта.

DpiChanged

Происходит при изменении DPI монитора этого Hwnd или Hwnd перемещается на монитор с другим DPI.

SizeToContentChanged

Происходит при изменении значения свойства SizeToContent.

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

Имя Описание
IKeyboardInputSink.HasFocusWithin()

Описание этого элемента см. в разделе IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Описание этого элемента см. в разделе KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Описание этого элемента см. в разделе OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Описание этого элемента см. в разделе RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Описание этого элемента см. в разделе TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Описание этого элемента см. в разделе TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Описание этого элемента см. в разделе TranslateChar(MSG, ModifierKeys).

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

См. также раздел