using Autodesk.Revit.UI; using System; using System.Windows; using System.Windows.Controls; namespace Szmedi.RvKits.DisplayTools; /// /// UserControl1.xaml 的交互逻辑 /// public partial class ElementsControlDock : Page, IDockablePaneProvider { //将外部事件定义为属性 public ExternalEvent IsolateCategoriesExEvent { get; set; } public ExternalEvent IsolateElementsExEvent { get; set; } public ExternalEvent HideCategoriesExEvent { get; set; } public ExternalEvent HideElementsExEvent { get; set; } public ExternalEvent RevealHiddenElementsExEvent { get; set; } public ExternalEvent ElementsSectionExEvent { get; set; } public ExternalEvent PinElementsExEvent { get; set; } public ExternalEvent PinCategoriesExEvent { get; set; } public ExternalEvent UnpinAllElementsExEvent { get; set; } public ExternalEvent UnpinCategoriesExEvent { get; set; } public ElementsControlDock() { IsolateCategoriesExEvent = ExternalEvent.Create(new IsolateCategoriesHandler()); IsolateElementsExEvent = ExternalEvent.Create(new IsolateElementsHandler()); HideCategoriesExEvent = ExternalEvent.Create(new HideCategoriesHandler()); HideElementsExEvent = ExternalEvent.Create(new HideElementsHandler()); RevealHiddenElementsExEvent = ExternalEvent.Create(new RevealHiddenHandler()); ElementsSectionExEvent = ExternalEvent.Create(new ElementsSectionHandler()); PinElementsExEvent = ExternalEvent.Create(new PinElementsHandler()); PinCategoriesExEvent = ExternalEvent.Create(new PinCategoriesHandler()); UnpinCategoriesExEvent = ExternalEvent.Create(new UnpinCategoriesHandler()); UnpinAllElementsExEvent = ExternalEvent.Create(new UnpinAllElementsHandler()); //var res = this.TryFindResource(); //var url = new Uri("pack://application:,,,/Szmedi.RvKits;V2.1.2.0;component/WPFUI.xaml"); //var dict = new ResourceDictionary(); //dict.Source = url; //Resources.MergedDictionaries.Add(dict); //Resources.Source = url; //var resources = Resources.Count; //var c = Resources.MergedDictionaries.Count; //foreach (var dictKey in dict.Keys) //{ // Resources.Add(dictKey, dict[dictKey]); //} //Resources.MergedDictionaries.Add(new ResourceDictionary //{ // //Source = new Uri("pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml") // Source = new Uri("pack://application:,,,/Szmedi.RvKits;v2.2.2.8;component/WPFUI.xaml") //}); InitializeComponent(); } //初始化可停靠窗口 public void SetupDockablePane(DockablePaneProviderData data) { data.FrameworkElement = this; data.InitialState = new DockablePaneState { DockPosition = DockPosition.Left }; } private void Btn_Click(object sender, RoutedEventArgs e) { Button btn = (Button)sender; if (HideElements == btn) { HideElementsExEvent.Raise(); } else if (IsolateElements == btn) { IsolateElementsExEvent.Raise(); } else if (RevealHiddenElements == btn) { RevealHiddenElementsExEvent.Raise(); } else if (ElementsSection == btn) { ElementsSectionExEvent.Raise(); } else if (PinElements == btn) { PinElementsExEvent.Raise(); } else if (PinCategories == btn) { PinCategoriesExEvent.Raise(); } else if (HideCategories == btn) { HideCategoriesExEvent.Raise(); } else if (IsolateCategories == btn) { IsolateCategoriesExEvent.Raise(); } else if (UnpinAllElements == btn) { UnpinAllElementsExEvent.Raise(); } else if (UnpinCategories == btn) { UnpinCategoriesExEvent.Raise(); } } }