0
私は異なるコントロールを含むCanvas内にGroupBoxを持っています。実行時に、GroupBoxをExpanderに変更したいと思います。wpf:GroupBoxでコントロールを削除する
いいえ、私はxamlでそれを行うことはできません。それは簡単だろう!
私はGroupBoxのすべての子を取得し、それを新しいビジュアルに追加するために子をデタッチする必要があることを知っています。ここで
はコードです:
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;
}
}
私は、私もグループボックスの子供のための定義を見つけることができない子どもの削除についての情報を取得しようとしている間。それはポイントかもしれない?
どのように私はこれを解決することができます/全く別の方法ですか?
HELP用タンク!
ステフ
おかげであなたのグループボックス内のパネルの種類(のStackPanelなど)であなたを「TypeOfContainer」を交換してください。私は本当に自分のスタックパネルを無視した – Stef