Jak w kodzie dodać kontrolki w .NET 3.5 (WPF) ?
W pracy dyplomowej mam funkcjonalność do zaimplementowania – mapa stolików w restauracji. Na mapie stolików wykonanej w AutoCAD nakładam przyciski, więc wczytuje z pliku XML położenia moich stolików na mapie bitowej (wysokość i szerokość w pikselach), po czym właśnie w tym miejscu dodaję nową kontrolkę – button, posiadającą handler dla Click.
foreach (Seat seat in seats)
{
System.Windows.Controls.Button button = new Button();
button.Content = seat.Sala + “-” + seat.Stolik;
//ustawienie pozycji przycisku
button.Width = 40;
button.Height = 40;
Thickness thick = new Thickness();
thick.Left = seat.Width + 160;
thick.Top = seat.Height + 20;
thick.Right = 0;
thick.Bottom = 0;
button.Margin = thick;
// ulozenie
button.HorizontalAlignment = HorizontalAlignment.Left;
button.VerticalAlignment = VerticalAlignment.Top;
// przypisanie akcji przyciskowi
button.Click += new RoutedEventHandler(newButt_Click);
// koloryzacja
button.IsEnabled = false;
button.Background = buttonBrushes[2];
// dodanie do layoutu
{… implementacja …}
if (seat.Sala == Image.selected + 1) LayoutRoot.Children.Add(button);
}
}
private void newButt_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
if (button.Background.Equals(buttonBrushes[3]))
{
// odzaznaczenie rezerwacji w przypadku edycji
}
{…kod implementacji…}
}
Polecam lekturę:
http://arcanecode.wordpress.com/2007/09/07/adding-wpf-controls-progrrammatically/
