コード例 #1
0
 public void BindEventNonForm(Control control, ThemeChangedEventHandler e)
 {
     if (control is Form)
     {
         throw new Exception($"传入的控件不能是窗体");
     }
     ThemeChanged     -= e;
     ThemeChanged     += e;
     control.Disposed += (object sender, EventArgs e1) => { ThemeChanged -= e; };
 }
コード例 #2
0
        private void VSColorTheme_ThemeChanged(ThemeChangedEventArgs e)
        {
            // VS triggers this like 5 times for ever _1_ change -- try to limit it
            var now = DateTime.Now;

            if (_lastThemeChange == DateTime.MinValue || (now - _lastThemeChange).Seconds > 2)
            {
                ThemeChangedEventHandler?.Invoke(this, e);
                _lastThemeChange = now;
            }
        }
コード例 #3
0
        //---------------------------------------------------------------------
        public void TextViewCreated(IWpfTextView textView)
        {
            this.views.Add(textView);
            textView.Closed        += OnTextViewClosed;
            textView.LayoutChanged += OnLayoutChanged;

            EventHandler <TextContentChangedEventArgs> onTextChanged =
                (sender, e) => OnTextChanged(textView, e);
            ThemeChangedEventHandler onThemeChanged = e => OnThemeChangedEvent(textView, e);

            handlers.Add(textView, new Handler
            {
                OnTextChanged  = onTextChanged,
                OnThemeChanged = onThemeChanged
            });
            textView.TextBuffer.Changed += onTextChanged;
            VSColorTheme.ThemeChanged   += onThemeChanged;
        }
コード例 #4
0
 /// <summary>
 /// 为窗体绑定事件,并在窗体关闭时自动解绑
 /// </summary>
 /// <param name="f"></param>
 public void BindEvent(Form f, ThemeChangedEventHandler e)
 {
     ThemeChanged -= e;
     ThemeChanged += e;
     f.FormClosed += (object sender, FormClosedEventArgs e1) => { ThemeChanged -= e; };
 }