2017-02-09 119 views
1

我在我的WPF應用程序下面的XAML代碼:WPF使元素的頂部位置固定

<Grid RenderTransformOrigin="0.524,0.496" Height="478" VerticalAlignment="Bottom"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="*"/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Canvas Grid.Row="0" Margin="0,22,0,0" Width="{Binding ActualWidth, ElementName=window, Mode=OneWay}" Background="AliceBlue" Height="43" HorizontalAlignment="Left" VerticalAlignment="Top"> 
       <Label x:Name="label" Content="Science Magazine - Papers" Canvas.Left="22" Canvas.Top="6" FontSize="16" Panel.ZIndex="1"/> 
      </Canvas> 
     </Grid> 

我想在畫布之後才能調整大小與窗口,這是我用的窗口的寬度結合其寬度達到。不過,我也希望它在調整窗口大小時保持在相同的頂部位置;相反,它這樣做:enter image description here

我不知道如何解決這一問題(因爲我是一個完整的WPF初學者:))

回答

0

您可以將GridDockPanel並設置Dock屬性Top。您還可以指定DockPanel的一些邊距。

<DockPanel> 
    <Grid DockPanel.Dock="Top" Margin="0,0,0,0" /> 
</DockPanel> 
+1

這並沒有工作,調整窗口大小時,畫布仍然向下移動。 – Eutherpy

-1

我覺得一個StackPanel是一個更簡單的選擇:

<StackPanel> 
    <Canvas Grid.Row="0" Margin="0,50,0,0" Background="Red" Height="43" > 
     <Label x:Name="label" Content="Science Magazine - Papers" Canvas.Left="22" Canvas.Top="6" FontSize="16" Panel.ZIndex="1"/> 
    </Canvas> 
</StackPanel> 

注意,這裏不需要綁定寬度或使用水平或垂直路線