2013-10-01 3 views
0

저는 WPF에 익숙하지 만 winforms에 익숙합니다. winforms에서 컨트롤을 도킹 할 때 나는 단지 DockStyle을 사용하지만 wpf에서 어떻게 해야할지 모르겠습니다. 대답에서 this question에, 나는 창에있는 나의 richtextbox를 도킹 할 수 있었다.WPF의 도크 컨트롤

하지만 내 문제는 현재 창 위쪽과 아래쪽에 상태 표시 줄과 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> 

그러나 최대화 때 메뉴와 상태 표시 줄이 화면의 중앙에 도킹됩니다 사용하여 시도했다.

내가 뭘 잘못하고 있니?

답변

2

당신은 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> 
+0

내가 수직 정렬 속성을 제거하면, 내 상태 표시 줄에 당신이'DockPanel'를 사용할 필요가 내를 RichTextBox –

+0

@PreciousTijesunimi의 중앙으로 이동합니다. 전체 XAML을 게시하십시오. –

+0

내 편집을 확인할 수 있습니다. –