12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace InABox.DynamicGrid
- {
- /// <summary>
- /// Interaction logic for VerticalDynamicEditorGridLayout.xaml
- /// </summary>
- public partial class VerticalDynamicEditorGridLayout : DynamicEditorGridLayout
- {
-
- public override bool TabStripVisible
- {
- get { return Editors.TabStripVisible; }
- set { Editors.TabStripVisible = value; }
- }
-
- public VerticalDynamicEditorGridLayout()
- {
- InitializeComponent();
- }
- public override void LoadPages(IEnumerable<IDynamicEditorPage> pages)
- {
- Editors.Items.Clear();
- OtherPages.Items.Clear();
- foreach (var page in pages.OrderBy(x => x.PageType).ThenBy(x => x.Order()).ThenBy(x => x.Caption()))
- {
- var tab = new DynamicTabItem();
- tab.Header = page.Caption();
- if (page is FrameworkElement element)
- element.Margin = new Thickness(0, 2, 0, 0);
- tab.Content = page;
- if(page is DynamicEditorGrid.DynamicEditPage)
- {
- Editors.Items.Add(tab);
- }
- else
- {
- OtherPages.Items.Add(tab);
- }
- }
- Editors.SelectedIndex = 0;
- }
- private bool bChanging;
- private void Editors_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (bChanging) return;
- if ((e.OriginalSource != Editors && e.OriginalSource != OtherPages) || e.OriginalSource is not DynamicTabControl tabControl) return;
- if (tabControl.SelectedItem is not DynamicTabItem tab) return;
- bChanging = true;
- try
- {
- if (tab is not null && tab.Content is IDynamicEditorPage page)
- {
- SelectPage(page);
- }
- }
- finally
- {
- bChanging = false;
- }
- }
- private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- EditorRow.MaxHeight = e.NewSize.Height - 50;
- }
- }
- }
|