Files
SzmediTools/Szmedi.RvKits/Display/ElementControlDock.xaml.cs
2025-09-16 16:06:41 +08:00

113 lines
4.0 KiB
C#

using Autodesk.Revit.UI;
using System;
using System.Windows;
using System.Windows.Controls;
namespace Szmedi.RvKits.DisplayTools;
/// <summary>
/// UserControl1.xaml 的交互逻辑
/// </summary>
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();
}
}
}