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); } }
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); } }
/// <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); }
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; }