2015-10-13 55 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

问候

相关问题