Browse Source

Outline view : Filtering & Scroll Selected Control into View on Design Area

pull/72/head
jogibear9988 12 years ago committed by jkuehner
parent
commit
ccd532ab86
  1. 15
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs
  2. 4
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/DragTreeView.cs
  3. 11
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineTreeView.cs

15
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.WpfDesign.Designer @@ -31,7 +31,7 @@ namespace ICSharpCode.WpfDesign.Designer
/// </summary>
[TemplatePart(Name = "PART_DesignContent", Type = typeof(ContentControl))]
[TemplatePart(Name = "PART_Zoom", Type = typeof(ZoomControl))]
public class DesignSurface : ContentControl
public partial class DesignSurface : ContentControl
{
private FocusNavigator _focusNav;
@ -73,10 +73,21 @@ namespace ICSharpCode.WpfDesign.Designer @@ -73,10 +73,21 @@ namespace ICSharpCode.WpfDesign.Designer
base.OnApplyTemplate();
}
private bool enableBringIntoView = false;
public void ScrollIntoView(DesignItem designItem)
{
enableBringIntoView = true;
LogicalTreeHelper.BringIntoView(designItem.View);
enableBringIntoView = false;
}
void _partDesignContent_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
e.Handled = true;
if (!enableBringIntoView)
e.Handled = true;
enableBringIntoView = false;
}
protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)

4
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/DragTreeView.cs

@ -72,7 +72,7 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView @@ -72,7 +72,7 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView
ev(ctl.Filter);
}
public event Action<string> FilterChanged;
public event Action<string> FilterChanged;
public virtual bool ShouldItemBeVisible(DragTreeViewItem dragTreeViewitem)
{
@ -283,7 +283,7 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView @@ -283,7 +283,7 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView
OnSelectionChanged();
}
void SelectOnly(DragTreeViewItem item)
protected virtual void SelectOnly(DragTreeViewItem item)
{
ClearSelection();
Select(item);

11
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineTreeView.cs

@ -40,5 +40,16 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView @@ -40,5 +40,16 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView
return string.IsNullOrEmpty(Filter) || node.Name.ToLower().Contains(Filter.ToLower());
}
protected override void SelectOnly(DragTreeViewItem item)
{
base.SelectOnly(item);
var node = item.DataContext as OutlineNode;
var surface = node.DesignItem.View.TryFindParent<DesignSurface>();
if (surface != null)
surface.ScrollIntoView(node.DesignItem);
}
}
}

Loading…
Cancel
Save