我是WPF的新手,试图创建他的第一个正常项目,这是一个笔记应用程序。每个音符都连接到button
,我认为它在StackPanel
中看起来会很漂亮。我在StackPanel
中动态创建button
s,但问题是,当我向下滚动Button
s最后Button
的列表时,无法完全看到。我认为这是因为Margin
并试图调整它,但它没有帮助,auto
Height
和Width
也没有帮助。StackPanel
在ScrollViewer
内,当我到达ScrollBar
的末尾时,我只能看到最后一个按钮的一半?
StackPanel
的XAML代码:
<ScrollViewer VerticalScrollBarVisibility="Auto"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="3" Margin="50 -50 50 5" >
<StackPanel x:Name="ButtonPanel"/>
</ScrollViewer>
这就是我如何创建Button
:
dynamicTextBox.Add(SearchNotes);
dynamicTextBox[index_of_buttons] = new TextBox();
Grid.SetRow(dynamicTextBox[index_of_buttons], 1);
Grid.SetColumn(dynamicTextBox[index_of_buttons], 0);
this.ButtonPanel.Children.Add(dynamicTextBox[index_of_buttons]);
dynamicTextBox[index_of_buttons].IsReadOnly = false;
dynamicTextBox[index_of_buttons].Text = "";
其中dynamicTextBox
是TextBox
的List<>
,应用了模板(我认为没有必要看到模板来解决问题)
它看起来是这样的:无法看到整个按钮(最后一个)
我想看到整个按钮
正如Andy在评论部分所写的,ListBox
是解决这个问题的最佳方案。我试着让它看起来和在StackPanel
中完全一样Xaml:
<ListBox Name="ListBoxOfButtons" Background="#404040" BorderThickness="0"
HorizontalContentAlignment="Stretch" Grid.Row="1" Grid.Column="0"
Grid.ColumnSpan="3" Grid.RowSpan="3" Margin="50 -20 50 5">
</ListBox>
c#:
var txtBox = new TextBox();
txtBox.Template = FindResource("TemplateForTextBox") as ControlTemplate;
ListBoxOfButtons.Items.Add(txtBox);
这是最后一个按钮现在的样子