我已经创建了客户窗口(titlebar,min/max/ext按钮,自己的窗口操作边框以及大量样式和触发器)。如何重用WPF客户窗口
有定义的5种方法(我想重写):
从窗口标记:
SourceInitialized="Window_SourceInitialized"
Closing="Window_Closing"
从标题栏按钮:
Exit_Click()
Max_Click()
Min_Click()
,最后我有DockPanel
<DockPanel Name="ClientArea"/>
在这我希望把我的内容
我试图从代码中添加内容:
BaseWindow editInterfaceWindow = new BaseWindow() { Owner = this };
editInterfaceWindow.DataContext = new EditInterface();
editInterfaceWindow.ShowDialog();
但是这样一些绑定采空工作和内部editInterfaceWindow我不能创建另一个窗口这种方式,因为Owner = this
。构造函数中的InitializeComponent()
也存在一些问题。 而在EditInterface UserControl <ListView Name="LBAvaliable" ItemsSource="{Binding AvaliableFaces, UpdateSourceTrigger=PropertyChanged}">
中的ListView在代码中不可见作为LBAvaliable。
我已经多次使用该窗口,手动填充ClientArea的内容。 我应该如何创建其他窗口,以便我可以继承它或只是定义绑定?所以我的每个窗口的XAML都不需要〜1000行代码。
我不熟悉继承WPF中的窗口,但看看UserControls。它允许您重新使用现有的自定义控件。 –
我的例子中的EditInterface实际上是UserControl和我试图做的 – Iluvatar
一种方法是创建一个从基类窗口类继承的空的干净类,在那里添加你的方法(我认为你甚至可以使它们抽象)然后让你的实际窗口继承自* that *类而不是基类窗口类。 –