Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将窗口内容加载到父窗口的面板中_C#_Wpf - Fatal编程技术网

C# 将窗口内容加载到父窗口的面板中

C# 将窗口内容加载到父窗口的面板中,c#,wpf,C#,Wpf,我想要一个有“下一步”和“后退”按钮的父窗口。在父窗口中,我想显示子窗口的内容。如果按下“下一步”按钮,子窗口应隐藏,并显示另一个子窗口的内容。子窗口不应显示框架。这是为了通过不同的步骤实现类似于windows安装程序中的UI <DockPanel> <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top"> </StackPan

我想要一个有“下一步”和“后退”按钮的父窗口。在父窗口中,我想显示子窗口的内容。如果按下“下一步”按钮,子窗口应隐藏,并显示另一个子窗口的内容。子窗口不应显示框架。这是为了通过不同的步骤实现类似于windows安装程序中的UI

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>
将所有子窗口实现为在一个窗口中隐藏和显示的堆栈面板似乎不是最佳的,因为XAML代码文件会变得非常大。而且会有很多冗余

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>

我找不到解决方案,因为我不知道要搜索的术语。

我让它这样工作,但我不确定这是否是最佳的方法

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>
主窗口xaml:

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>

看起来Mark Hall是对的,用户控件是更好的方法: 奇怪的是它被称为UserControl,我真的不想把它用作控件

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>
用户控制:

    <DockPanel>
        <StackPanel Width="300" Height="200" Name="ParentPanel" DockPanel.Dock="Top">

        </StackPanel>

        <StackPanel DockPanel.Dock="Bottom">
            <StackPanel Orientation="Horizontal">
                <Button>Back</Button>
                <Button>Next</Button>
            </StackPanel>
        </StackPanel>
    </DockPanel>

</Grid>
<UserControl x:Class="UserControlProject.UCChildWindowContent"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="271" d:DesignWidth="300">
<Grid>
    <StackPanel>
        <TextBox Text="This is a child Window"></TextBox>
    </StackPanel>
</Grid>

为什么要使用太多的窗口?听起来你在寻找一个新的窗口。我想在单独的窗口中定义窗口内容,这样我可以在visual studio中看到窗口内容的样子,并且可以更好地组织它。@user1550097这实际上就是UserControl的用途。可以随意从主窗口添加和删除,并封装每个部分的逻辑。