Я думаю, что если вы хотите использовать несколько элементов управления, то есть дочерних элементов, в качестве содержимого, вам нужно использовать панель какого-либо типа, которая является базовым классом для свойства .Children.
Не уверен, применимо ли этов вашей ситуации.Мне было трудно понять, что именно происходит в вашем вопросе.Может быть, вы можете сделать пользовательский элемент управления, который наследуется от ContentControl.Как вы можете знать или не знать, для пользовательских элементов управления нужен ключ стиля по умолчанию.С помощью пользовательского элемента управления вам нужно определить шаблон в стиле по умолчанию.Теперь шаблон может иметь ContentControl где-то внутри него, и его свойство содержимого должно быть привязкой шаблона к свойству contentcontrol.content.Или вы можете переопределить функцию OnContentChanged и делать что угодно в этой функции переопределения (например, поместить отдельный объект в элемент управления самостоятельно ... или для нескольких объектов создайте новую сетку / панель, а затем установите объекты как сетку / панелиchildren для пользователя и затем делайте то, что вы делаете с сеткой / панелью. Вам нужно было бы установить / связать свойство content в вашем новом элементе управления. Имеет смысл?
Я не знаю о вашей ошибке с ключом стиля по умолчанию, и у меня нет каких-либо элементов управления telerik, но вы не можете просто унаследовать от своего индикатора активности telerik?правильный путь).
protected override void OnContentChanged( object oldContent, object newContent )
{
//I dont know how you are assigning content,
//but i would say if it's IEnumerable and count is > 1 it should use your panel
var newMultiContent = newContent as System.Collections.IEnumerable;
if ( newMultiContent!=null && newMultiContent.Cast<object>().Count()>1)
{
var myNewContentContainer = new StackPanel();//or grid or whatever
myNewContentContainer.Children.Clear();
//add children
foreach (var item in newMultiContent.OfType<UIElement>())
myNewContentContainer.Children.Add(item);
//instead of the old content that wasn't what you wanted, use the new content container
base.OnContentChanged( oldContent, myNewContentContainer );
//or maybe try this and call the base method at the beginning...
Content = myNewContentContaint
}
else
base.OnContentChanged( oldContent, newContent );
}