在 WPF 程式新增一個 UserControl 時, 預設是繼承自 System.Windows.Controls.UserControl, 若將父層換為自己所撰寫的類別, Base Control 程式碼如下: namespace WpfControlBase { public class ControlBase : UserControl { public System.Windows.Window ParentWindow { get; set; } } } 在繼承的 UserControl 中有兩個步驟 1. C# 或 VB 檔案中, UserControl 中繼承此類別 public partial class UserControl1 : WpfControlBase.ControlBase { } 2. 修改 xaml 檔案的宣告 < WpfCB:ControlBase x:Class ="CloseShowDialog.UserControl1" xmlns:WpfCB ="clr-namespace:WpfControlBase;assembly=WpfControlBase" > 筆者有個案例是, 在 UserControl 中要關閉視窗, 透過 Parent 找不到 Windows 物件, 暫時想到的解決方法是, 每一次動態載入UserControl 時, 透過 BaseControl 將視窗傳入, 後續要關閉視窗就由此屬性進行。 download code 以上是參考 < wpf user control base class problem > 討論.