[英]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>
從這些元素中刪除Margin
和VerticalAlignment
屬性。
編輯:像這樣糾正您的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.