2012-08-15 15 views
1
<Grid> 
       <ScrollViewer Height="391" HorizontalAlignment="Left" Margin="10,10,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="427" > 
        <Grid Height="733"> 

        </Grid> 
       </ScrollViewer> 
       <TextBox Height="76" HorizontalAlignment="Left" Margin="19,453,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="254" /> 
       <Button Content="Button" Height="77" HorizontalAlignment="Left" Margin="290,450,0,0" Name="button1" VerticalAlignment="Top" Width="136" /> 
      </Grid> 

我想在用户单击按钮时在scrollviewer中添加一个复选框。每次点击时,新的复选框应该出现在前面的下方。另外,ScrollViewer是这项任务的理想控制器吗?如何通过代码添加复选框到scrollviewer?

回答

3

如果你想复选框出现低于对方,你应该使用一个StackPanel,而不是电网作为SrollViewer容器内部:

<ScrollViewer Height="391" HorizontalAlignment="Left" Margin="10,10,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="427" > 
       <StackPanel Name="CheckBoxContainer"> 

       </StackPanel> 
    </ScrollViewer> 

而且在点击事件添加复选框

CheckBoxContainer.Children.Add(new CheckBox()); 
2

您需要将复选框添加到包含在ScrollViewer中的网格中。这可以使用类似于以下代码:

myGrid.Children.Add(new CheckBox()); 

假设“myGrid”是您的网格的名称。

ScrollViewer是一个很好的控件,当你有一个有限的区域需要包含不适合该区域的内容时。因为我不知道你的应用程序做了什么,它看起来像什么,或者它是如何工作的,从设计的角度来说,如果这是正确的控制,很难说。

但是,看到用户可能会添加10个(甚至100个)复选框,那么您可能希望这样做不会将表单扩展得比您想要的更多。

+0

谢谢。我很感激。 – 2012-08-15 11:14:28

1

对于继续添加复选框使用StackPanel来代替Grid

<Grid> 
    <ScrollViewer Height="391" HorizontalAlignment="Left" Margin="10,10,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="427" > 
     <StackPanel x:Name="stackPanel"> 

     </StackPanel> 
    </ScrollViewer> 
    <TextBox Height="76" HorizontalAlignment="Left" 
      Margin="19,453,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="254" /> 
    <Button Content="Button" Height="77" HorizontalAlignment="Left" 
      Margin="290,450,0,0" Name="button1" Click="button1_Click" VerticalAlignment="Top" Width="136" /> 
</Grid> 

而不是:

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    stackPanel.Children.Add(new CheckBox() { Content = "Hi"}); 
} 
相关问题