protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); this.hwndSource = (HwndSource)PresentationSource.FromVisual(this); if (this.hwndSource == null) { return; } var ws = this.hwndSource.Handle.GetWindowLong(); var wsex = this.hwndSource.Handle.GetWindowLongEx(); ws |= WS.POPUP; wsex &= ~WSEX.APPWINDOW; wsex |= WSEX.TOOLWINDOW; if (this._owner.ResizeMode == ResizeMode.NoResize || this._owner.ResizeMode == ResizeMode.CanMinimize) { wsex |= WSEX.TRANSPARENT; } this.hwndSource.Handle.SetWindowLong(ws); this.hwndSource.Handle.SetWindowLongEx(wsex); this.hwndSource.AddHook(this.WndProc); this.handle = this.hwndSource.Handle; this.ownerHandle = new WindowInteropHelper(this._owner).Handle; this.resizeModeChangeNotifier = new PropertyChangeNotifier(this._owner, ResizeModeProperty); this.resizeModeChangeNotifier.ValueChanged += this.ResizeModeChanged; }
private void AttachHandlers(Flyout flyout) { var isOpenNotifier = new PropertyChangeNotifier(flyout, Flyout.IsOpenProperty); isOpenNotifier.ValueChanged += FlyoutStatusChanged; flyout.IsOpenPropertyChangeNotifier = isOpenNotifier; var themeNotifier = new PropertyChangeNotifier(flyout, Flyout.ThemeProperty); themeNotifier.ValueChanged += FlyoutStatusChanged; flyout.ThemePropertyChangeNotifier = themeNotifier; }
private void AttachVisibilityHandler(WindowCommandsItem container, UIElement item) { if (container != null) { if (null == item) { // if item is not a UIElement then maybe the ItemsSource binds to a collection of objects // and an ItemTemplate is set, so let's try to solve this container.ApplyTemplate(); var content = container.ContentTemplate?.LoadContent() as UIElement; if (null == content) { // no UIElement was found, so don't show this container container.Visibility = Visibility.Collapsed; } return; } container.Visibility = item.Visibility; var isVisibilityNotifier = new PropertyChangeNotifier(item, UIElement.VisibilityProperty); isVisibilityNotifier.ValueChanged += VisibilityPropertyChanged; container.VisibilityPropertyChangeNotifier = isVisibilityNotifier; } }
public ToggleSwitchButton() { isCheckedPropertyChangeNotifier = new PropertyChangeNotifier(this, ToggleSwitchButton.IsCheckedProperty); isCheckedPropertyChangeNotifier.ValueChanged += IsCheckedPropertyChangeNotifierValueChanged; }