这是目标:通过扩展删除某些编辑器中的导航栏(不是所有的,因为在选项中是可能的)。
所以这是我要删除的东西:
我检查了很多方法,最有希望的是IWpfTextViewMargin
在加载后访问它:
IWpfTextViewHost TextViewHost;
IWpfTextViewMargin ContainerMargin;
public DummyMargin(IWpfTextViewHost textViewHost,
IWpfTextViewMargin containerMargin)
{
this.TextViewHost = textViewHost;
this.ContainerMargin = containerMargin;
Loaded += DummyMargin_Loaded;
}
void DummyMargin_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
// ContainerMargin is loaded here
}
然后在可视化树中向上遍历找到导航栏并将其隐藏在那里:
但这是一个非常肮脏和不可靠的解决方案。你知道更好的吗?特别是如果有一个扩展点(如其中之一:编辑器扩展点)来操作它。