czwartek, 22 listopada 2012

70-511 Rozdział 3 - Graficzny interfejs użytwkonika - zarządzanie kontrolkami w czasie działania aplikacji

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:
            //Adding new control to form in run time
            var newButton = new Button();
            newButton.Text = "My new button";
            this.Controls.Add(newButton);

            //Delete control in run time
            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();
            //Adding to Container control
            grid1.Children.Add(buttons[0]);
            //Adding to List control
            lb1.Items.Add(buttons[1]);
            //Adding to content control
            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