我有一个自定义控件(称为MyContainer),它只是一个带有Canvas的ScrollViewer。
我可以像在Canvas中一样向MyContainer添加控件,但在XAML设计器中,这些控件不能像在普通Canvas中那样移动;它们无法用鼠标移动。
以下是MyContainer代码:
[ContentProperty("Children")]
public class MyContainer : ScrollViewer, IAddChild
{
private Canvas _innerCanvas;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public UIElementCollection Children
{
get { return _innerCanvas.Children; }
}
public MyContainer()
{
this._innerCanvas = new Canvas();
this.Content = _innerCanvas;
this.Loaded += MyContainer_Loaded;
}
void MyContainer_Loaded(object sender, RoutedEventArgs e)
{
_innerCanvas.Height = this.ActualHeight;
_innerCanvas.Width = this.ActualWidth;
}
void IAddChild.AddChild(object value)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
UIElement uie = value as UIElement;
if (uie == null)
{
throw new ArgumentNullException("value");
}
_innerCanvas.Children.Add(value as UIElement);
}
void IAddChild.AddText(string text)
{
;
}
}
我错在哪里了?
PS:请避免回复“不要使用编辑器,只使用XAML代码”; 我需要通过图形界面使用户控件可用。