private void NetworkDiagramButton_Click(object sender, RoutedEventArgs e) { // Optionally, specify a maximum indentation level to consider when generating network items as a parameter to the GetNetworkDiagramItems method call. networkDiagramItems = GanttChartDataGrid.GetNetworkDiagramItems(); var networkDiagramView = new DlhSoft.Windows.Controls.Pert.NetworkDiagramView { Items = networkDiagramItems }; ChildWindow networkDiagramWindow = new ChildWindow { Title = "Network Diagram", Width = 960, Height = 600, Content = networkDiagramView }; networkDiagramView.AsyncPresentationCompleted += delegate(object senderCompleted, EventArgs eCompleted) { // Optionally, reposition start and finish milestones between the first and second rows of the view. networkDiagramView.RepositionEnds(); // Optionally, highlight the critical path. Brush redBrush = new SolidColorBrush(Colors.Red); foreach (var item in networkDiagramView.GetCriticalItems()) { DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeStroke(item, redBrush); } foreach (var predecessorItem in networkDiagramView.GetCriticalDependencies()) { DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetDependencyLineStroke(predecessorItem, redBrush); } }; networkDiagramWindow.Closed += NetworkDiagramWindow_Closed; networkDiagramWindow.Show(); }
private void NetworkDiagramButton_Click(object sender, RoutedEventArgs e) { double originalOpacity = Opacity; Opacity = 0.5; // Optionally, specify a maximum indentation level to consider when generating network items as a parameter to the GetNetworkDiagramItems method call. ObservableCollection <DlhSoft.Windows.Controls.Pert.NetworkDiagramItem> networkDiagramItems = GanttChartDataGrid.GetNetworkDiagramItems(); DlhSoft.Windows.Controls.Pert.NetworkDiagramView networkDiagramView = new DlhSoft.Windows.Controls.Pert.NetworkDiagramView { Items = networkDiagramItems }; Window networkDiagramWindow = new Window { Owner = Application.Current.MainWindow, Title = "Network Diagram", WindowStartupLocation = WindowStartupLocation.CenterOwner, Width = 960, Height = 600, ResizeMode = ResizeMode.CanResize, Content = networkDiagramView }; networkDiagramView.AsyncPresentationCompleted += delegate(object senderCompleted, EventArgs eCompleted) { // Optionally, reposition start and finish milestones between the first and second rows of the view. networkDiagramView.RepositionEnds(); // Optionally, highlight the critical path. foreach (var item in networkDiagramView.GetCriticalItems()) { DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeStroke(item, Brushes.Red); } foreach (var predecessorItem in networkDiagramView.GetCriticalDependencies()) { DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetDependencyLineStroke(predecessorItem, Brushes.Red); } }; if (themeResourceDictionary != null) { (networkDiagramWindow.Content as FrameworkElement).Resources.MergedDictionaries.Add(themeResourceDictionary); } networkDiagramWindow.ShowDialog(); GanttChartDataGrid.DisposeNetworkDiagramItems(networkDiagramItems); Opacity = originalOpacity; }