public void CreateLayout(Grid gridLayout)
{
//StackPanel
DwrapperForControls = new StackPanel();
DwrapperForControls.Width = 300;
DwrapperForControls.Margin = new Thickness(10, 0, 0, 0);
//TextBlock
DtblConnectedToIP = new TextBlock();
DtblConnectedToIP.Name = "NDtblConnectedToIP";
DtblConnectedToIP.Text = "ConnectedToIP";
//"tbxConnectedToIP"
//"tbxConversation"
//"tbxMassegeTyping"
//TextBox
DtbxConnectedToIP = new TextBox();
DtbxConnectedToIP.IsReadOnly = true;
DtbxConnectedToIP.Name = "NDtbxConnectedToIP";
// TextBox
DtbxConversation = new TextBox();
DtbxConversation.Name = "NDtbxConversation";
DtbxConversation.IsReadOnly = true;
DtbxConversation.Height = 190;
DtbxConversation.Background = Brushes.DarkCyan;
//TextBox
DtbxMassegeTypingD = new TextBox();
DtbxMassegeTypingD.Name = "NDtbxMassegeTypingD";
//Button
DbtnSend = new Button();
DbtnSend.Width = 100;
DbtnSend.Height = 20;
DbtnSend.Content = "Send";
DbtnSend.Click += new RoutedEventHandler(DbtnSend_Click);
DwrapperForControls.Children.Add(DtblConnectedToIP);
DwrapperForControls.Children.Add(DtbxConnectedToIP);
DwrapperForControls.Children.Add(DtbxConversation);
DwrapperForControls.Children.Add(DtbxMassegeTypingD);
DwrapperForControls.Children.Add(DbtnSend);
DwrapperForControls.Name = "Child" + numbering;
stackPanelWrapper.Children.Add(DwrapperForControls);
numbering++;
}
To jest obecnie Kod XAML, którego używam, ale zamiast używać Stackpanela jako rodzica, chcę DockPanel, ponieważ
Nie sądzę Panel
aktualizuje swój interfejs użytkownika
<ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel x:Name="stackPanelWrapper" Orientation="Horizontal" Width="auto"> </StackPanel>
</ScrollViewer>
Odpowiedzi:
0 dla odpowiedzi № 1Na obu StackPanel i DockPanel znajduje się właściwość Children, która jest Collection, w której można usunąć obiekty.
Właśnie przetestowałem funkcjonalność usuwania, działa dobrze zarówno z StackPanel jak i DockPanel.
<!-- you can change StackPanel into DockPanel, it still works fine -->
<StackPanel x:Name="panel1">
<Button Content="remove me " Click="Button_Click" DockPanel.Dock="Top" Height="50" />
<Button Content="remove me " Click="Button_Click" DockPanel.Dock="Left" Width="50" />
<Button Content="remove me " Click="Button_Click" />
</StackPanel>
Oto układ kodu:
private void Button_Click(object sender, RoutedEventArgs e)
{
panel1.Children.Remove(sender as UIElement);
}
Masz tutaj działające demo: http://1drv.ms/1ZxRAPb
pozdrowienia