WPF, Окно крюка, Всплывающее окно

В App.xaml.cs или в другом экземпляре начального класса вам нужно добавить:

var field = typeof(PresentationSource).GetField("RootSourceProperty", BindingFlags.NonPublic | BindingFlags.Static);
        var property = (DependencyProperty)field.GetValue(null);
        property.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(property.DefaultMetadata.DefaultValue, OnHwndSourceChanged));

Куда, RootSourceProperty это частное поле DependecyProperty из PresentationSource, Свойство использовать при HwndSource создан и установлен RootVisual. Так что вам нужно просто использовать свойство измененного обратного вызова RootSourceProperty:

private static void OnHwndSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {

    }

Это хорошо, потому что вы можете использовать его во всех приложениях и для всех HwndSource (Popup, Window или пользовательские элементы управления, где вы используете HwndSource)

0 ответов

Другие вопросы по тегам