2016-07-27 86 views
0

我正在开发一个应用程序使用WPF c#。我为窗口设置了Width = 700和Height = 700,我的窗口有一个嵌套的Grid,Border和Canvas。 Horizo​​nta和边界和帆布的垂直对齐是拉伸。预计“实际宽度”和“画布实际高度”为700,但它们为682和659。出错了?我错过了设置一些属性吗?水平和垂直在帆布弹力

我用这个xaml代码:

<Window x:Class="proj.Window1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Window1" Height="700" Width="700" WindowStartupLocation="CenterScreen" Loaded="Window_Loaded"> 
    <Grid> 
     <Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
      <Canvas x:Name="cnv" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 

      </Canvas> 
     </Border> 
    </Grid> 
</Window> 

这里是“Window_Loaded”事件代码:

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    MessageBox.Show(cnv.ActualWidth + "\n" + cnv.ActualHeight); 
} 

回答

0

我想的是,窗口的高度包括顶部的标题栏。所以如果你设置700,窗口的实际有效高度是682,因为标题栏需要18个像素。宽度相同的行为,因为任何窗口左右都有边框。