아니,이 상자 밖으로 수 없습니다. 당신이 할 수있는 일 는 FrameworkElements을 그릴 수있는 자신 만의 Adorner를 만들 수 있습니다 :
public class FrameworkElementAdorner : Adorner
{
private FrameworkElement _child;
public FrameworkElementAdorner(UIElement adornedElement)
: base(adornedElement)
{
}
protected override int VisualChildrenCount
{
get { return 1; }
}
public FrameworkElement Child
{
get { return _child; }
set
{
if (_child != null)
{
RemoveVisualChild(_child);
}
_child = value;
if (_child != null)
{
AddVisualChild(_child);
}
}
}
protected override Visual GetVisualChild(int index)
{
if (index != 0) throw new ArgumentOutOfRangeException();
return _child;
}
protected override Size MeasureOverride(Size constraint)
{
_child.Measure(constraint);
return _child.DesiredSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
_child.Arrange(new Rect(new Point(0, 0), finalSize));
return new Size(_child.ActualWidth, _child.ActualHeight);
}
}
사용법 : 당신이 사용하는 경우
var fweAdorner = new FrameworkElementAdorner(adornedElement);
//Create your own Content, here: a StackPanel with some stuff inside
var stackPanel = new StackPanel();
stackPanel.Children.Add(new TextBox() { Text="TEST"});
stackPanel.Children.Add(new Image());
fweAdorner.Child = stackPanel;
var adornerLayer = AdornerLayer.GetAdornerLayer(adornedElement);
adornerLayer.Add(fweAdorner);
당신은 또한 Adorner에서 직접 StackPanel의 생성을 통합 할 수 StackPanel의 여러 번 조합. 그것은 당신의 시나리오에 달려 있습니다.
스벤 (Sven), 충분한 친구를 사귈 수 없습니다! 똑바로 복사하여 내 솔루션에 붙여 넣고 매력을 작동! 감사! –
당신은 반갑습니다! – SvenG
나 같은데 Sven : 코드가 매력처럼 작동했습니다! 고마워 !!! – Renaud