在具有从基类继承的多个窗口的应用程序中 - BaseWindow
,我想在每个窗口上都有一个状态栏。我认为这必须通过代码来完成,因为一个 XAML 生成的类不能从另一个类继承。
XAML 如下所示:
<my:BaseWindow x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:WpfApplication1">
<StackPanel>
<TextBlock Text="Content" />
</StackPanel>
</my:BaseWindow>
和 BaseWindow 类:
public class BaseWindow : Window {
protected override void OnContentChanged(object oldContent, object newContent) {
var sb = new StatusBar();
sb.Items.Add(new TextBlock {
Text = "Status bar"
});
var dp = new DockPanel();
dp.Children.Add(sb);
DockPanel.SetDock(sb, Dock.Bottom);
dp.Children.Add((UIElement)newContent);
base.OnContentChanged(oldContent, dp);
}
}
引发以下错误:在附加到新的父 Visual 之前,必须断开指定子与当前父 Visual 的连接。
我该如何解决这个问题?或者,我可以使用哪些其他技术来实现这一目标?