簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM