2011-01-05 17 views
1

イム私は、この画面のグレーで... をドッキングする方法を固定する方法を知らないステータスバーがドッキングされているが、グリッドとメニューは、すべてのコンポーネントがキャンバスにいるではありません。 これは、あなたがこれらの事はCanvasに行きたくないXAMLWPF&XAML問題

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
x:Class="WpfApplication6.MainWindow" 
x:Name="Window" 
Title="MainWindow" 
Width="640" Height="480"> 

<Grid x:Name="LayoutRoot"> 
    <Canvas> 
     <StackPanel Height="40" Width="624" VerticalAlignment="Top" HorizontalAlignment="Center"> 
      <Menu Height="39" Margin="1,0,0,0"> 
       <Menu.Background> 
        <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> 
         <GradientStop Color="#FFF6F6F6" Offset="0.25"/> 
         <GradientStop Color="#FFEAE8E8" Offset="0.25"/> 
         <GradientStop Color="#FFDCD9D9" Offset="0.8"/> 
         <GradientStop Color="White" Offset="1"/> 
        </LinearGradientBrush> 
       </Menu.Background> 
      </Menu> 
     </StackPanel> 
     <StackPanel Height="356" Canvas.Top="44" Width="161" HorizontalAlignment="Left"> 
      <Expander Header="Expander" Height="107"> 
       <Grid Background="#FFE5E5E5"/> 
      </Expander> 
     </StackPanel> 
     <StackPanel Height="360" Canvas.Left="161" Canvas.Top="40" Width="463"> 
      <DataGrid Height="361"/> 
     </StackPanel> 
    </Canvas> 
    <StackPanel Height="40" Margin="-1,0,0,0" VerticalAlignment="Bottom"> 
     <StatusBar Height="40" Background="#FF897676"/> 
    </StackPanel> 
</Grid> 

alt text

+0

ご質問が分かりません。グリッドとメニューを画面上のどこに配置しますか? – ChrisNel52

答えて

5

です。私は今までWPFでCanvasを使ったことがあるか分からない。

DockPanelはあなたの友人であり、これは、それがどのように動作するかです:いいえ塗りつぶし何、左、上、右、または下

    • 各制御DockPanelDockPanel.Dock添付プロパティを取得しますか?これは重要です.1つのコントロールに空き領域をいっぱいにすることができます。DockPanelで宣言された最後のコントロールになります。したがって、「塗りつぶし」コントロールを一番上にしたい場合でも、DockPanelの最後の項目にして、DockPanel.Dock="Top"と設定します。
    • 最後の "塗りつぶし"以外のアイテム、同じドック設定を持つものは宣言された順にドッキングされます。その最も基本的で

    それが利用可能なスペースを埋めるだろう除き、DockPanelはちょうどStackPanelのように使用することができます。

  • +0

    ありがとう...アンカーのようなものがありますか? –

    +0

    @userアンカーはありません。さまざまな種類のパネルがあり、それぞれ独自の方法で子供を配置しています。それらに慣れるだけで(DockPanel、StackPanel、Grid、FlowLayoutPanelなど)、適切な効果を得るために正しいものを適用することを学ぶ必要があります。 – Jay