从 WPF 窗口继承?

J4N*_*J4N -1 wpf inheritance xaml

我的窗口在两个应用程序之间应该是相同的,除了某些点之外。我想继承它来创建一个子类(没有 XAML),它只在构造函数中进行一些自定义(如窗口的标题)。

这可能吗?

mm8*_*mm8 5

这可能吗?

是的。

创建一个继承自的类System.Windows.Window

public class YourBaseClass : Window
{
    public YourBaseClass() : base()
    {
        Title = "Common Title";
    }
}
Run Code Online (Sandbox Code Playgroud)

...并更改 Windows 的基类以使用这个基类,两者都在代码隐藏中:

public partial class MainWindow : YourBaseClass
{
    public MainWindow()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

...以及在 XAML 中:

<local:YourBaseClass x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        Height="300" Width="300">
</local:YourBaseClass>
Run Code Online (Sandbox Code Playgroud)