C# 如何在WPF中重用自定义设计的窗口?

C# 如何在WPF中重用自定义设计的窗口?,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有一个定制设计的窗口,如下所示 以下是我的XAML设计,为了简单起见省略了这些样式 <Window x:Class="CustomWindowBase.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x

我有一个定制设计的窗口,如下所示

以下是我的XAML设计,为了简单起见省略了这些样式

<Window x:Class="CustomWindowBase.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:CustomWindowBase"
            mc:Ignorable="d"
            Title="CustomWindow" Height="600" Width="870" WindowStartupLocation="CenterScreen"
            ResizeMode="NoResize" AllowsTransparency="True" WindowStyle="None" Background="Transparent">
    <Border Style="{StaticResource MainWindowBorderStyle}">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="35"/>
                <RowDefinition Height="590*"/>
            </Grid.RowDefinitions>

            <Border Grid.Row="0" Style="{StaticResource TitleBarBorderStyle}">
                <Grid>
                    <TextBlock Style="{StaticResource TitleStyle}" Text="Custom Window"/>
                    <Button x:Name="BtnClose" Style="{StaticResource CloseButtonStyle}"/>
                </Grid>
            </Border>

            <Grid Grid.Row="1">
                <!-- Different User Control Here -->
            </Grid>
        </Grid>
    </Border>
</Window>
此窗口支持关闭/拖动操作的代码隐藏有两个事件

我如何在我的应用程序可能打开的每一个窗口中重用这个shell,就像可以继承的基类一样

如果可能的话,我不想在代码背后做太多工作,比如实例化这个窗口外壳的实例,并用另一个用户控件分配它的内容


非常感谢您的帮助。

如果我没弄错,那就好了。从窗户外面用手机打电话


新建MainWindow.ShowDialog

如果我没弄错,那就没事了。从窗户外面用手机打电话

新建MainWindow.ShowDialog

将XAML内容放入ControlTemplate中

对于零件,插入一个。它知道该怎么做。它只是知道而已

使用样式应用样板和其他所需的特性值

将XAML内容放入ControlTemplate中

对于零件,插入一个。它知道该怎么做。它只是知道而已


使用样式应用样板和其他所需的特性值

不,对不起,我的意思是我可能创建和使用的所有其他窗口都具有相同的外观。没有打开……不,对不起,我的意思是我可能创建和使用的所有其他窗口都有相同的外观和感觉。不打开它们…哇,那个内容演示者真是太神奇了!这正是我想要的,谢谢你们的帮助,标记为答案。对于这些事件,我在我的App.xaml.cs中实现了Close和Drag,方法是将发送者强制转换到它们的控件,执行Window.GetWindow实例,并调用Close和DragMove方法。哇,那个内容演示器真是太神奇了!这正是我想要的,谢谢你们的帮助,标记为答案。对于这些事件,我在我的App.xaml.cs中实现了Close和Drag,方法是将发送者强制转换到它们的控件,执行Window.GetWindow实例,并调用Close和DragMove方法。