Exemplo n.º 1
0
        // override
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            //Calendar = new Gantt.GanttCalendar().SetWorking(DayOfWeek.Saturday, true).SetWorking(new DateTime(2014,1,1), false);

            TimespanHeader = (TimespanHeader.TimespanHeader)GetTemplateChild("TimespanElement");
            TimespanHeader.CurrentTimeChanged += Timespan_CurrentTimeChanged;
            TimespanHeader.ZoomFactorChanged += Timespan_ZoomFactorChanged;
            TimespanHeader.Loaded += new RoutedEventHandler(TimespanHeader_Loaded);
            TimespanHeader.Calendar = Calendar;

            Panel = (GanttPanel)GetTemplateChild("PanelElement");
            Panel.Nodes = Nodes;
            Panel.ParentGanttChart = this;
            Panel.Dependencies = this.Dependencies;
            Panel.CurrentTime = TimespanHeader.CurrentTime;
            Panel.IsShowActualMark = IsShowActualMark;

            TaskGrid = (GanttDataGrid)GetTemplateChild("TaskGrid");
            TaskGrid.RowExpandedChanged += new EventHandler<RowExpandedChangedEventArgs>(TaskGrid_RowExpanded);
            TaskGrid.Nodes = Nodes;
            TaskGrid.SetValue(DataGridHelper.RowContextMenuProperty, DataGridHelper.GetRowContextMenu(this));
            TaskGrid.ApplyTemplate();
            TaskGrid.ScrollViewer.ScrollChanged += new ScrollChangedEventHandler(ScrollViewer_ScrollChanged);
            Binding selectdValueBinding = new Binding("SelectedNode");
            selectdValueBinding.Source = this;
            TaskGrid.SetBinding(GanttDataGrid.SelectedValueProperty, selectdValueBinding);
            Columns.ToList().ForEach(c => TaskGrid.Columns.Add(c));

            #region Scrollbar
            VerticalScrollbar = (ScrollBar)GetTemplateChild("VerticalScrollbar");
            VerticalScrollbar.SmallChange = 1;
            VerticalScrollbar.LargeChange = 5;
            VerticalScrollbar.Scroll += new ScrollEventHandler(VerticalScrollbar_Scroll);
            VerticalScrollbar.Maximum = TaskGrid.ScrollViewer.ScrollableHeight;

            Binding heightBinding = new Binding("ScrollableHeight");
            heightBinding.Source = TaskGrid.ScrollViewer;
            VerticalScrollbar.SetBinding(ScrollBar.MaximumProperty, heightBinding);
            Binding visibilityBinding = new Binding("ScrollableHeight");
            visibilityBinding.Converter = new QPP.Wpf.UI.Converters.BoolToVisibilityConverter();
            visibilityBinding.Source = TaskGrid.ScrollViewer;
            VerticalScrollbar.SetBinding(ScrollBar.VisibilityProperty, visibilityBinding);
            Binding viewportBinding = new Binding("ViewportHeight");
            viewportBinding.Source = TaskGrid.ScrollViewer;
            VerticalScrollbar.SetBinding(ScrollBar.ViewportSizeProperty, viewportBinding);

            HorizontalScrollbar = (ScrollBar)GetTemplateChild("HorizontalScrollbar");
            HorizontalScrollbar.Scroll += new ScrollEventHandler(HorizontalScrollbar_Scroll);
            HorizontalScrollbar.MouseEnter += new MouseEventHandler(HorizontalScrollbar_MouseEnter);
            HorizontalScrollbar.Minimum = 0;
            HorizontalScrollbar.Maximum = 100;
            HorizontalScrollbar.SmallChange = 1;
            HorizontalScrollbar.LargeChange = 5;
            HorizontalScrollbar.Value = 50;
            HorizontalScrollbar.ViewportSize = 80;
            #endregion

            var grid = (Grid)GetTemplateChild("GanttGrid");

            var spliter = (GridSplitter)GetTemplateChild("GridSplitterElement");

            spliter.DragCompleted += (sender, e) =>
            {
                _Width = grid.ColumnDefinitions[0].Width;
            };

            //TaskGrid.SelectionMode = DataGridSelectionMode.Extended;//设置为多选模式
            TaskGrid.SelectionChanged +=new SelectionChangedEventHandler(TaskGrid_SelectionChanged);
        }
        /// <summary>
        /// 
        /// </summary>
        public Matrix3DPanel()
        {
            string[] strIds = { "M11", "M12", "M13", "M14",
                                "M21", "M22", "M23", "M24",
                                "M31", "M32", "M33", "M34",
                                "OffsetX", "OffsetY", "OffsetZ", "M44" };

            NameScope.SetNameScope(this, new NameScope());

            // Create UniformGrid and add it as a child.
            unigrid = new UniformGrid();
            unigrid.Rows = 4;
            unigrid.Columns = 4;
            AddVisualChild(unigrid);
            AddLogicalChild(unigrid);

            for (int i = 0; i < strIds.Length; i++)
            {
                // StackPanel for each cell.
                StackPanel stack1 = new StackPanel();
                stack1.Orientation = Orientation.Vertical;
                stack1.Margin = new Thickness(12);
                unigrid.Children.Add(stack1);

                // StackPanel for TextBlock elements.
                StackPanel stack2 = new StackPanel();
                stack2.Orientation = Orientation.Horizontal;
                stack2.HorizontalAlignment = HorizontalAlignment.Center;
                stack1.Children.Add(stack2);

                // ScrollBar for each cell.
                ScrollBar scroll = new ScrollBar();
                scroll.Orientation = Orientation.Horizontal;
                scroll.Value = (i % 5 == 0) ? 1 : 0;
                scroll.SmallChange = 0.01;
                scroll.LargeChange = 0.1;
                scroll.Focusable = true;
                stack1.Children.Add(scroll);

                RegisterName(strIds[i], scroll);

                // Set bindings for scrollbars.
                Binding binding = new Binding("Minimum");
                binding.Source = this;
                binding.Mode = BindingMode.OneWay;
                scroll.SetBinding(ScrollBar.MinimumProperty, binding);

                binding = new Binding("Maximum");
                binding.Source = this;
                binding.Mode = BindingMode.OneWay;
                scroll.SetBinding(ScrollBar.MaximumProperty, binding);

                // TextBlock elements to show values.
                TextBlock txtblk = new TextBlock();
                txtblk.Text = strIds[i] + " = ";
                stack2.Children.Add(txtblk);

                binding = new Binding("Value");
                binding.Source = scroll;
                binding.Mode = BindingMode.OneWay;

                txtblk = new TextBlock();
                txtblk.SetBinding(TextBlock.TextProperty, binding);
                stack2.Children.Add(txtblk);
            }

            AddHandler(ScrollBar.ValueChangedEvent, new RoutedEventHandler(ScrollBarOnValueChanged));
        }
Exemplo n.º 3
0
        // override
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            //Calendar = new Gantt.GanttCalendar().SetWorking(DayOfWeek.Saturday, true).SetWorking(new DateTime(2014,1,1), false);

            TimespanHeader = (TimespanHeader.TimespanHeader)GetTemplateChild("TimespanElement");
            TimespanHeader.CurrentTimeChanged += Timespan_CurrentTimeChanged;
            TimespanHeader.ZoomFactorChanged += Timespan_ZoomFactorChanged;
            TimespanHeader.Loaded += new RoutedEventHandler(TimespanHeader_Loaded);
            TimespanHeader.Calendar = Calendar;

            Panel = (GanttPanel)GetTemplateChild("PanelElement");
            Panel.Nodes = Nodes;
            Panel.ParentGanttChart = this;
            Panel.Dependencies = this.Dependencies;
            Panel.CurrentTime = TimespanHeader.CurrentTime;
            Panel.IsShowActualMark = IsShowActualMark;
            Binding selectdValueBinding = new Binding("SelectedNode");
            selectdValueBinding.Source = this;

            #region Scrollbar
            VerticalScrollbar = (ScrollBar)GetTemplateChild("VerticalScrollbar");
            VerticalScrollbar.SmallChange = 1;
            VerticalScrollbar.LargeChange = 5;
            VerticalScrollbar.Scroll += new ScrollEventHandler(VerticalScrollbar_Scroll);

            Binding heightBinding = new Binding("ScrollableHeight");
            VerticalScrollbar.SetBinding(ScrollBar.MaximumProperty, heightBinding);
            Binding visibilityBinding = new Binding("ScrollableHeight");
            visibilityBinding.Converter = new QPP.Wpf.UI.Converters.BoolToVisibilityConverter();
            VerticalScrollbar.SetBinding(ScrollBar.VisibilityProperty, visibilityBinding);
            Binding viewportBinding = new Binding("ViewportHeight");
            VerticalScrollbar.SetBinding(ScrollBar.ViewportSizeProperty, viewportBinding);

            HorizontalScrollbar = (ScrollBar)GetTemplateChild("HorizontalScrollbar");
            HorizontalScrollbar.Scroll += new ScrollEventHandler(HorizontalScrollbar_Scroll);
            HorizontalScrollbar.MouseEnter += new MouseEventHandler(HorizontalScrollbar_MouseEnter);
            HorizontalScrollbar.Minimum = 0;
            HorizontalScrollbar.Maximum = 100;
            HorizontalScrollbar.SmallChange = 1;
            HorizontalScrollbar.LargeChange = 5;
            HorizontalScrollbar.Value = 50;
            HorizontalScrollbar.ViewportSize = 80;
            #endregion
        }