![](/img/trans.png)
[英]How to add tooltip to all controls in a form programmatically - WPF, C#?
[英]How to add controls / Elements to a form in the WPF C# code?
有没有一种方法可以像Win Forms C#中那样添加控件? Button b = new Button();
然后像Form1.Controls.Add(b);
一样添加它
我无法在WPF中执行此操作,因为Window类中没有Controls属性。 我怎样才能做到这一点。 我读到的只是放置一个面板,将其停靠以填充,然后在其中使用:
myPanel.Children.Add(b);
但是后来又浮现在我身上。 如何创建和添加面板并将其停靠以填充?
如果我使用Panel p = new Panel();
它标志着错误。 以及如何将面板添加到MainWindow?
您可以向下面的窗口中添加一个堆栈面板。
StackPanel myPanel = new StackPanel();
myWindow.Content = myPanel;
就像下面的@HighCore一样,在代码隐藏中添加控件并不干净。 尽可能使用XAML,并避免在代码后面添加控件
您可以像在XAML中一样在C#中创建任何结构。
var p = new Panel();
上面的方法不起作用,因为Panel是一个抽象类。 您可以执行以下操作:
var p = new StackPanel();
var g = new Grid();
var wp = new WrapPanel();
var dp = new DockPanel();
//Etc.
在这里查看所有面板: http : //msdn.microsoft.com/zh-cn/library/system.windows.controls.panel(v=vs.110).aspx
<Window ...>
<StackPanel>
<TextBox/>
</StackPanel/>
</Window>
等价于(来自您的MainWindow.xaml.cs):
var sp = new StackPanel();
sp.Children.Add(new TextBox);
Content = sp;
编辑:只是要清楚一点,如果本质上是动态的,则您只想在C#中创建UI。 如果您知道会有哪些字段,请始终使用XAML。 它是WPF的HTML。 在网页背后编码所有内容,相当于在网络设计中发送空白HTML文件并使用JavaScript创建所有内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.