2016-07-27 28 views
0

Ich entwickle eine App mit WPF C#. Ich setze Width = 700 und Height = 700 für ein Window und mein Window haben ein Grid, Border und Canvas, die verschachtelt sind. Horizontale und vertikale Ausrichtung für Rahmen und Leinwand sind Stretch. Es wird erwartet, dass ActualWidth und ActualHeight von Canvas 700 sind, aber sie sind 682 und 659. Was ist falsch? Fehle ich die Einrichtung einiger Eigenschaften?horizontalen und vertikalen Stretch in Canvas

Ich benutze diesen xaml Code:

<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> 

Und hier ist "Window_Loaded" Ereigniscode:

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

Antwort

0

Ich nehme an, dass die Höhe des Fensters ist die Titelleiste auf der Oberseite. Wenn Sie also 700 einstellen, ist die tatsächliche effektive Höhe des Fensters 682, da die Titelleiste 18 Pixel benötigt. Gleiches Verhalten für die Breite, da jedes Fenster links und rechts einen Rand hat.