2015-10-13 52 views
-1
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++; 

    } 

這是XAML代碼目前我使用,但使用的StackPanel中作爲父母,我想DockPanel中,因爲如何從DockPanel中刪除一個項目,使其更新其觀點

我不認爲Panel更新它的UI

<ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
<StackPanel x:Name="stackPanelWrapper" Orientation="Horizontal" Width="auto"> </StackPanel> 
</ScrollViewer> 

enter image description here

+0

請編輯 「面板我不認爲更新其UI」 - > StackPanel?再次閱讀自己 –

+0

現在它工作嗎?看看我的答案,下面有一個完整的工作解決方案 –

回答

0

在這兩個的StackPanel和DockPanel中,有一個孩子的屬性,是集合在那裏你可以刪除對象。

我剛剛測試了刪除功能,它與StackPanel和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> 

這裏是隱藏代碼:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    panel1.Children.Remove(sender as UIElement); 
} 

你已經有了一個工作演示在這裏:http://1drv.ms/1ZxRAPb

問候

相關問題