Ejemplo n.º 1
0
        public SplitterPane(bool isHorizontal)
        {
            Tag          = Guid.NewGuid();
            IsHorizontal = isHorizontal;

            VerticalAlignment   = VerticalAlignment.Stretch;
            HorizontalAlignment = HorizontalAlignment.Stretch;
            Margin = new Thickness(0);

            _gridSplitter = new GridSplitter();
            _gridSplitter.SetResourceReference(BackgroundProperty, "SplitterBrush");
            _gridSplitter.BorderThickness = new Thickness(0);
            Children.Add(_gridSplitter);

            RowDefinitions.Add(new RowDefinition());
            ColumnDefinitions.Add(new ColumnDefinition());

            if (IsHorizontal)
            {
                RowDefinition rowDefinition = new RowDefinition();
                RowDefinitions.Add(rowDefinition);
                rowDefinition.Height = new GridLength(1, GridUnitType.Auto);

                RowDefinitions.Add(new RowDefinition());

                ColumnDefinitions[0].Width = new GridLength(1, GridUnitType.Star);

                _gridSplitter.VerticalAlignment   = VerticalAlignment.Center;
                _gridSplitter.HorizontalAlignment = HorizontalAlignment.Stretch;
                _gridSplitter.SetResourceReference(HeightProperty, "SplitterWidth");
                Grid.SetRow(_gridSplitter, 1);
                Grid.SetColumn(_gridSplitter, 0);
            }
            else
            {
                ColumnDefinition columnDefinition = new ColumnDefinition();
                columnDefinition.Width = new GridLength(1, GridUnitType.Auto);
                ColumnDefinitions.Add(columnDefinition);

                ColumnDefinitions.Add(new ColumnDefinition());

                RowDefinitions[0].Height = new GridLength(1, GridUnitType.Star);

                _gridSplitter.VerticalAlignment   = VerticalAlignment.Stretch;
                _gridSplitter.HorizontalAlignment = HorizontalAlignment.Center;
                _gridSplitter.SetResourceReference(WidthProperty, "SplitterWidth");
                Grid.SetRow(_gridSplitter, 0);
                Grid.SetColumn(_gridSplitter, 1);
            }
        }
Ejemplo n.º 2
0
 private void AddSplitters()
 {
     for (int j = 1; j < root.RowDefinitions.Count; ++j)
     {
         GridSplitter gs = new GridSplitter();
         root.Children.Add(gs);
         gs.SetResourceReference(GridSplitter.StyleProperty, "ChatSplitter");
         Grid.SetRow(gs, j);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// タイムラインを追加する
        /// </summary>
        /// <param name="data">タイムラインデータ</param>
        public void AddTimeline(TimelineData data)
        {
            if (data == null)
            {
                return;
            }

            data.GridWidth = new GridLength(1.0, GridUnitType.Star);

            //Gridが空の時はGridSplitterを挿入しない
            if (this.Grid.First().Children.Count != 0)
            {
                //列幅のリセット
                for (int i = 0; i < this.Timelines.Count; i++)
                {
                    this.Timelines[i].TimelineViewModel.SetGridWidth(new GridLength(1.0, GridUnitType.Star));
                }

                this.Grid.First().ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(2)
                });
                var gridSpliter = new GridSplitter()
                {
                    Width = 2,
                    HorizontalAlignment = HorizontalAlignment.Stretch
                };
                gridSpliter.SetResourceReference(Control.BackgroundProperty, "AccentColorBrush");
                System.Windows.Controls.Grid.SetColumn(gridSpliter, this.Grid.First().Children.Count);
                this.Grid.First().Children.Add(gridSpliter);
            }

            //タイムラインを生成
            var timeline = new Views.Timeline(data);
            //タイムライン用のカラムを生成
            var columnDefinition = new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            };
            //タイムラインの幅をカラムにバインド
            var width = new Binding("Timelines.Timelines[" + this.Timelines.Count + "].TimelineViewModel.GridWidth")
            {
                Mode = BindingMode.TwoWay
            };

            columnDefinition.SetBinding(ColumnDefinition.WidthProperty, width);
            this.Grid.First().ColumnDefinitions.Add(columnDefinition);
            data.ColumnIndex = this.Timelines.Count;
            System.Windows.Controls.Grid.SetColumn(timeline, this.Grid.First().Children.Count);
            this.Grid.First().Children.Add(timeline);
            this.Timelines.Add(timeline);
        }
Ejemplo n.º 4
0
        private void _initializeMainComponent()
        {
            /* メニューアイテムの描画 */
            var titleBarArea = new ColumnDefinition
            {
                Width = new GridLength(400)
            };
            var catchableArea = new ColumnDefinition();

            CaptionBarArea.ColumnDefinitions.Add(titleBarArea);
            CaptionBarArea.ColumnDefinitions.Add(catchableArea);

            var menuArea = new MenuArea();

            menuArea.SetValue(Grid.ColumnProperty, 0);
            CaptionBarArea.Children.Add(menuArea);

            // システムボタンの描画
            CaptionBarArea.Children.Add(_systemButtons);

            /* メインコンテンツの描画 */
            // グリッドの描画
            var treeViewArea = new ColumnDefinition
            {
                MinWidth = 5,
                Width    = new GridLength(300)
            };
            var splitterArea = new ColumnDefinition
            {
                Width = new GridLength(4)
            };
            var dragblzArea = new ColumnDefinition();

            ContentArea.ColumnDefinitions.Add(treeViewArea);
            ContentArea.ColumnDefinitions.Add(splitterArea);
            ContentArea.ColumnDefinitions.Add(dragblzArea);

            // コンテンツの描画
            var manageArea = new DatabaseTreeViewControl();

            manageArea.SetValue(Grid.ColumnProperty, 0);

            var splitter = new GridSplitter
            {
                HorizontalAlignment = HorizontalAlignment.Stretch
            };

            splitter.SetResourceReference(BackgroundProperty, "ThemeBrushKey");
            splitter.SetValue(Grid.RowProperty, 1);
            splitter.SetValue(Grid.ColumnProperty, 1);

            var dragblzControl = new DragablzControl();

            dragblzControl.SetValue(Grid.ColumnProperty, 2);
            ContentArea.Children.Add(manageArea);
            ContentArea.Children.Add(splitter);
            ContentArea.Children.Add(dragblzControl);

            dragblzControl.FormLoadEnded();

            /* イベントのハンドル */
            menuArea.newTab.Click += (_object, _e) => dragblzControl.AddServerAddPage();

            initialized = true;
        }