У меня есть групповой блок внутри Canvas, содержащий различные элементы управления.Во время выполнения я хочу изменить GroupBox на Expander.
Нет, я не могу сделать это в xaml.Это было бы просто!
Я получил все дочерние элементы GroupBox и знаю, что должен отсоединить от него дочерние элементы, чтобы добавить его в новый Visual.
Вот код:
for (int i= 0; i < VisualTreeHelper.GetChildrenCount(Canvas2DHandler); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(Canvas2DHandler, i);
if (child != null && typeof(GroupBox) == child.GetType() )
{
GroupBox roomGroupBox = (GroupBox)child;
Expander roomExpander = new Expander();
StackPanel sPForExpander = new StackPanel();
roomExpander.Header = roomGroupBox.Header;
for (int n=0; n < VisualTreeHelper.GetChildrenCount(child); n++)
{
UIElement groupBoxChild = VisualTreeHelper.GetChild(child, n) as UIElement;
//remove control from groupBox (HOWTO???)
sPForExpander.Children.Add(groupBoxChild);
}
roomExpander.Content = sPForExpander;
}
}
Пока я пытаюсь получить информацию об удалении дочерних элементов, я даже не могу найти определение для дочерних элементов GroupBox.Может быть в этом смысл?
Как я могу решить эту проблему / есть ли совершенно другой способ?
танки для ПОМОЩИ!
Стеф