W czasie działania aplikacji można zarówno dodawać, jak i usuwać kontrolki.
Windows Forms oferuje właściwość Controls, która pozwala na dodawanie bądź usuwanie kontrolek:
Code:
var newButton = new Button();
newButton.Text = "My new button";
this.Controls.Add(newButton);
this.Controls.Remove(newButton);
W przypadku WPF należy skorzystać w zależności od typu kontrolki z właściwości:
- dla kontrolek typu kontener - właściwość Children
- dla kontrolek listowych właściwość Items
- dla kontrolek "zawartościowych" - Content conotrls, poprzez właściwość Content
Przykład:
Code:
public MainWindow()
{
InitializeComponent();
var buttons = GetSampleButtons();
grid1.Children.Add(buttons[0]);
lb1.Items.Add(buttons[1]);
btn1.Content = buttons[2];
}
private Button[] GetSampleButtons()
{
var buttons = new Button[3];
for (int i = 1; i < 4; i++)
{
var newButton = new Button();
newButton.Content = "My new button";
newButton.Width = 100;
newButton.Height = 20;
newButton.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
buttons[i - 1] = newButton;
}
return buttons;
}
Xaml:
Code:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Name="grid1">
<ListBox Name="lb1" Width="100" Height="50" VerticalAlignment="Top" />
<Button Name="btn1" Width="100" Height="35" />
</Grid>
</Window>
Usunięta kontrolka, jeżeli nie jest używana do niej referencja, zwolni zajmowaną pamięć.
Brak komentarzy:
Prześlij komentarz