C# StackPanel保证金问题
当我将C# StackPanel保证金问题,c#,wpf,combobox,C#,Wpf,Combobox,当我将文本框的边距从顶部设置为15时: x.Margin = new Thickness(100, 15, 0, 0); 这很好,一切正常,但我想让一个组合框从顶部出现15px,它不起作用 y.Margin = new Thickness(0, 15, 0, 0); 这是我单击按钮创建组合框和文本框的代码: int t = 0; private void btnAddTitle_Click(object sender, RoutedEventArgs e) { TextBox
文本框的边距从顶部设置为15
时:
x.Margin = new Thickness(100, 15, 0, 0);
这很好,一切正常,但我想让一个组合框从顶部出现15px
,它不起作用
y.Margin = new Thickness(0, 15, 0, 0);
这是我单击按钮创建组合框和文本框的代码:
int t = 0;
private void btnAddTitle_Click(object sender, RoutedEventArgs e)
{
TextBox x = new TextBox();
x.Name = "Title" + t;
x.Text = "Title...";
x.FontWeight = FontWeights.Bold;
x.FontStyle = FontStyles.Italic;
x.TextWrapping = TextWrapping.Wrap;
x.Height = 25;
x.Width = 200;
x.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
x.Margin = new Thickness(100, 15, 0, 0);
spStandard.Children.Add(x);
ComboBox y = new ComboBox();
y.Name = "Combo" + t;
y.Text = (t + 1).ToString();
y.Height = 25;
y.Width = 45;
y.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
y.Margin = new Thickness(0, 15, 0, 0);
spStandard.Children.Add(y);
t++;
}
下面是我运行应用程序时发生的情况的图片-它显示了组合框的放置位置:
这里有一个解决问题的方法,您不应该在代码隐藏中创建控件,但它可以完成任务:
int t = 0;
private void btnAddTitle_Click(object sender, RoutedEventArgs e)
{
//a new stackpanel is used to arrange items Horizontally for each line
StackPanel sp = new StackPanel() { Orientation = Orientation.Horizontal };
TextBox x = new TextBox();
x.Name = "Title" + t;
x.Text = "Title...";
x.FontWeight = FontWeights.Bold;
x.FontStyle = FontStyles.Italic;
x.TextWrapping = TextWrapping.Wrap;
x.Height = 25;
x.Width = 200;
x.Margin = new Thickness(0, 15, 0, 0);
ComboBox y = new ComboBox();
y.Name = "Combo" + t;
y.Text = (t + 1).ToString();
y.Height = 25;
y.Width = 45;
y.Margin = new Thickness(0, 15, 0, 0);
sp.Children.Add(y);
sp.Children.Add(x);
spStandard.Children.Add(sp);
t++;
}
TextBox
也将“margin left”设置为100,期望的结果是什么?如果您使用Vertical
StackPanel
它的所有子项都将垂直排列,不要期望它们在同一行上。读这个:那你为什么要把文本框的100个单位移到右边?移动ComboBox或者,您可以在stackpanel中水平堆叠每一对,并将这些stackpanel添加到主垂直stackpanel不要在WPF的过程代码中创建或操作UI元素。这就是XAML的用途。哎呀,我需要重复多少次呢?{Orientation=Horizontal}代码>位不存在。