2017-02-18 00:15:59 +03:00
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Windows;
|
2017-01-09 13:25:52 +03:00
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
using System.Windows.Documents;
|
|
|
|
|
|
using System.Windows.Media;
|
|
|
|
|
|
|
2017-08-31 12:55:09 +03:00
|
|
|
|
namespace BrightSharp.Diagrams
|
2017-01-09 13:25:52 +03:00
|
|
|
|
{
|
2017-02-18 00:15:59 +03:00
|
|
|
|
[ToolboxItem(false)]
|
2017-01-09 13:25:52 +03:00
|
|
|
|
public class SizeAdorner : Adorner
|
|
|
|
|
|
{
|
|
|
|
|
|
private SizeChrome chrome;
|
|
|
|
|
|
private VisualCollection visuals;
|
|
|
|
|
|
private ContentControl designerItem;
|
|
|
|
|
|
|
|
|
|
|
|
protected override int VisualChildrenCount
|
|
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
2017-08-31 12:55:09 +03:00
|
|
|
|
return visuals.Count;
|
2017-01-09 13:25:52 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public SizeAdorner(ContentControl designerItem)
|
|
|
|
|
|
: base(designerItem)
|
|
|
|
|
|
{
|
2017-08-31 12:55:09 +03:00
|
|
|
|
SnapsToDevicePixels = true;
|
2017-01-09 13:25:52 +03:00
|
|
|
|
this.designerItem = designerItem;
|
2017-08-31 12:55:09 +03:00
|
|
|
|
chrome = new SizeChrome();
|
|
|
|
|
|
chrome.DataContext = designerItem;
|
|
|
|
|
|
visuals = new VisualCollection(this);
|
|
|
|
|
|
visuals.Add(chrome);
|
2017-01-09 13:25:52 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override Visual GetVisualChild(int index)
|
|
|
|
|
|
{
|
2017-08-31 12:55:09 +03:00
|
|
|
|
return visuals[index];
|
2017-01-09 13:25:52 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override Size ArrangeOverride(Size arrangeBounds)
|
|
|
|
|
|
{
|
2017-08-31 12:55:09 +03:00
|
|
|
|
chrome.Arrange(new Rect(new Point(0.0, 0.0), arrangeBounds));
|
2017-01-09 13:25:52 +03:00
|
|
|
|
return arrangeBounds;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|