簡體   English   中英

WPF中的Dock控件

[英]Dock Controls in WPF

我對WPF很新,但我習慣了winforms。 在winforms中當我想要停靠控件時我只使用DockStyle但我不知道如何在wpf中執行它。 這個問題的答案,我已經能夠將我的richtextbox停靠在窗口中。

但我現在的問題是如何將狀態欄和menustrip停靠在窗口的頂部和底部。 我試過用

<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並將DockPanel.Dock附加屬性設置為您要停靠的元素:

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

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

從這些元素中刪除MarginVerticalAlignment屬性。

編輯:像這樣糾正您的XAML:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM