2013-03-29 3 views
1

В моем WPF приложения Я создал и добавил новую сетку, я уже знаю, как удалить все дети от него:WPF Как удалить сетку?

private void ClrScr() 
    { 
     for (int i = GridName.Children.Count - 1; i >= 0; i--) 
     { 
      GridName.Children.RemoveAt(i); 
     } 
    } 

Но я понятия не имею, как убить саму сетку, мои попытки:

 GridName.Exit/Disable/Something; /// <--- no Idea what am I doing... 
     this.Controls["GridName"].DIEEEE; 

К сожалению, я потерпел неудачу ... Я очень новичок в WPF, я в основном играл с WinForms ... Help?

+0

Что является родителем вашей сетки? –

+0

Главное окно? –

+1

вы пробовали 'this.Content = null;' –

ответ

1

Вы можете удалить сетку, используя ее родительский элемент.

например: Если у вас есть три сетки с именем grid1, grid2 и grid3 в элементе управления док панели с именем main, вы можете удалить эти сетки, как это:

main.Children.Remove(this.grid1); 
main.Children.Remove(this.grid2); 
main.Children.Remove(this.grid3); 
+0

Soooo, я должен добавить сетку внутри сетки, чтобы потом ее можно было убить? ... Звучит на самом деле, вполне логично для меня: D –

+0

Где пример кода, чтобы показать, что вы имеете в виду? Что должен сделать пользователь, чтобы предоставить родительскую сетку для доступа к свойству «Дети»? – slugster

0

Все элементы управления в WPF имеет родителя, за исключением форма. Если Grid вы собираетесь удалить это первое, то вы можете сделать это:

var parent = myGrid.Parent; 
Window window = parent as Window; 
if(window!=null) 
    window.Content = null; 

Иногда Сетка может быть дочерним элементом управления, который не имеет Content свойство. Если у него нет Контента, то он должен иметь Children или Items.

+0

Спасибо за ваш ответ :) –