簡體   English   中英

自定義用戶控件沒有出現在WPF窗口中?

[英]Custom user control not appearing in WPF window?

我有一個嘗試使用的自定義WPF用戶控件,稱為TimeoutPanel。 但是,如果我嘗試將其從.cs文件添加到我的窗口中,則它實際上不會顯示。

我需要能夠獲取擁有超時屏幕的窗口的句柄。

TimeoutPanel tp = new TimeoutPanel(this);
tp.Visibility = Visibility.Visible;

如果有人可以指出我在做什么錯,我將不勝感激!

編輯:這是我的TimeoutPanel的構造函數

public TimeoutPanel(Window parent)
{
    this.InitializeComponent();
    parentWindow = parent;
}

我在.cs文件的主屏幕窗口中使用以下代碼調用它:

TimeoutPanel tp = new TimeoutPanel(this);
MainGrid.Children.Add(tp);

發生異常時崩潰:其他信息:無法創建類型為“ TicketBooth.TimeoutPanel”的對象。 CreateInstance失敗,這可能是由於沒有“ TicketBooth.TimeoutPanel”的公共默認構造函數造成的。 標記文件'TicketBooth; component / homescreen.xaml'中的對象'System.Windows.Controls.Grid'錯誤174行10。

謝謝!

您所做的絕不會將UserControl放在WPF應用程序的窗口中。 您需要將UserControl放在Window內的子級上。 設置可見性實際上並不將UserControl放置為任何容器的子級。

我的猜測是,網格是Window內的容器。 如果是這樣的話; 要將您的UserControl添加到網格中,只需將其作為子元素添加到網格中即可。 您需要先命名網格,然后才能在后面的代碼中引用它。

TimeoutPanel tp = new TimeoutPanel(this);
myGrid.Children.Add(tp);

您需要將此控件添加到某些父控件集合中。

假設,在主窗口中有一個名為stckPanel的堆棧面板,因此,如果要在此堆棧面板下顯示此創建的控件,則需要執行以下代碼

TimeoutPanel tp = new TimeoutPanel(this);
stckPanel.Children.Add(tp);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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