C# WPF中的停靠控制

C# WPF中的停靠控制,c#,wpf,winforms,C#,Wpf,Winforms,我对WPF很陌生,但我习惯winforms。在winforms中,当我想停靠控件时,我只使用DockStyle,但我不知道如何在wpf中这样做。从回答到,我已经能够将richtextbox停靠在窗口中 但我现在的问题是如何在窗口的顶部和底部停靠我的状态栏和菜单。我试过使用 <Window x:Class="Textpad.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

我对WPF很陌生,但我习惯winforms。在winforms中,当我想停靠控件时,我只使用
DockStyle
,但我不知道如何在wpf中这样做。从回答到,我已经能够将richtextbox停靠在窗口中

但我现在的问题是如何在窗口的顶部和底部停靠我的状态栏和菜单。我试过使用

<Window x:Class="Textpad.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Textpad" Height="324" Width="390" FontFamily="Tahoma">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="368*" />
        <ColumnDefinition Width="0*" />
    </Grid.ColumnDefinitions>
    <Menu Height="23" HorizontalAlignment="Center" Name="menu1" VerticalAlignment="Top" Width="368" Grid.ColumnSpan="2">
        <MenuItem Header="File">
            <MenuItem Header="New" />
            <MenuItem Header="Open" />
            <MenuItem Header="Save" />
            <MenuItem Header="Save as" />
            <Separator />
            <MenuItem Header="Print" />
            <MenuItem Header="Print Preview" />
            <MenuItem Header="Page Setup" />
            <Separator />
            <MenuItem Header="Exit" />
        </MenuItem>
        <MenuItem Header="Edit">
            <MenuItem Header="Undo" />
            <MenuItem Header="Redo" />
            <Separator />
            <MenuItem Header="Cut" />
            <MenuItem Header="Copy" />
            <MenuItem Header="Paste" />
            <MenuItem Header="Delete" />
            <Separator />
            <MenuItem Header="Find" />
            <MenuItem Header="Replace" />
            <Separator />
            <MenuItem Header="Select All" />
        </MenuItem>
        <MenuItem Header="Format">
            <MenuItem Header="Word Wrap" />
            <Separator />
            <MenuItem Header="Font" />
            <MenuItem Header="Text Color" />
        </MenuItem>
        <MenuItem Header="View">
            <MenuItem Header="Status Bar" />
        </MenuItem>
        <MenuItem Header="Help">
            <MenuItem Header="About Textpad" />
        </MenuItem>
    </Menu>
    <DockPanel>
        <StatusBar Height="23 " HorizontalAlignment="Stretch" Name="statusBar1" Width="368" Grid.ColumnSpan="2" DockPanel.Dock="Bottom">
            <StatusBarItem Content="This is status baritem content to test" />
        </StatusBar>
    </DockPanel>
    <RichTextBox HorizontalAlignment="Stretch" Margin="0,21" Name="richTextBox1" VerticalAlignment="Stretch" TextChanged="richTextBox1_TextChanged" VerticalContentAlignment="Top" Grid.ColumnSpan="2" />
</Grid>

但当最大化时,菜单和状态栏停靠在窗口的中心


请问我做错了什么?

您需要一个
DockPanel
并将附加属性设置为要停靠的元素:

<Window>
   <DockPanel>
      <StatusBar Height="23" DockPanel.Dock="Bottom"/>
      <Menu Height="23" DockPanel.Dock="Top"/>

      <!-- Main Window Content here -->
   </DockPanel>
</Window>

如果删除“垂直对齐”属性,则状态栏将显示在“垂直对齐”属性的中间richtextbox@PreciousTijesunimi您需要使用
DockPanel
。发布你的完整XAML。如果我打扰了你,很抱歉,但是我是否应该删除grid@precioustijesunimi对DockPanel在这种情况下会更好地为您服务。请告诉我一个奇怪的行为,richtextbox停留在表单的中心而不是停靠
<Window x:Class="Textpad.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Textpad" Height="324" Width="390" FontFamily="Tahoma">
    <DockPanel>

        <Menu Height="23" DockPanel.Dock="Top">
           <!-- MenuItems Here -->
        </Menu>

        <StatusBar Height="23" DockPanel.Dock="Bottom">
            <StatusBarItem Content="Amesinlola Tijesunimi is my Name and baseball is the game" />
        </StatusBar>

       <RichTextBox Margin="0,21" TextChanged="richTextBox1_TextChanged" VerticalContentAlignment="Top"/>

    </DockPanel>
</Window>