コード例 #1
0
 private void DisplayManagerNodeRemovedEvent(object sender, NodeCollectionChangedEventArgs e)
 {
     if (e.Node is Operation)
         RemoveTabParent(e.Node as Operation);
     else if (e.Node is ImageProperty)
         RemoveTabItem(e.Node as ImageProperty);
 }
コード例 #2
0
        private void NodeAddedEvent(object sender, NodeCollectionChangedEventArgs e)
        {
            if(e.Node is Operation)
                AddTabParent(e.Node as Operation);

            if (e.Node is ImageProperty)
                AddTabItem(e.Node as ImageProperty);

            if (this.DisplayTabControl.Items.Count == 1)
                this.DisplayTabControl.SelectedIndex = 0;
        }
コード例 #3
0
        private void ImageChangedEvent(object sender, NodeCollectionChangedEventArgs e)
        {
            if (_isDispatcherInactive == false) return;
            ImageProperty property = sender as ImageProperty;

            this.Dispatcher.BeginInvoke(new Action(() => {
                _isDispatcherInactive = false;
                _mutex.WaitOne();
                ImageProperty propertyClone = property.Clone() as ImageProperty;
                propertyClone.UID = property.UID;
                Operation parentOperation = propertyClone.ParentOperation as Operation;
                foreach (OperationDisplayTabItem item in this.DisplayTabControl.Items) {
                    if (item.Operation == parentOperation) {
                        foreach (DisplayTabItem display in (item.Content as TabControl).Items) {
                            if (display.ImageProperty == null) continue;
                            if (display.ImageProperty.UID == propertyClone.UID) {
                                display.UpdateImage(propertyClone);
                            }
                        }
                    }
                }
                _mutex.ReleaseMutex();
            }), System.Windows.Threading.DispatcherPriority.Normal);
        }