Canvas 水平和垂直拉伸
horizontal and vertical Stretch in Canvas
我正在使用 WPF c# 开发应用程序。我为 Window 设置了 Width=700 和 Height=700,而我的 Window 有一个嵌套的 Grid、Border 和 Canvas。 Border 和 Canvas 的 Horizonta 和 vertical Alignment 是 Stretch。 Canvas 的 ActualWidth 和 ActualHeight 应该是 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);
}
我想 Window 的高度包括顶部的标题栏。所以如果你设置700,那么Window的实际有效高度是682,因为标题栏占了18个像素。宽度的行为相同,因为任何 Window 都有左右边框。
我正在使用 WPF c# 开发应用程序。我为 Window 设置了 Width=700 和 Height=700,而我的 Window 有一个嵌套的 Grid、Border 和 Canvas。 Border 和 Canvas 的 Horizonta 和 vertical Alignment 是 Stretch。 Canvas 的 ActualWidth 和 ActualHeight 应该是 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);
}
我想 Window 的高度包括顶部的标题栏。所以如果你设置700,那么Window的实际有效高度是682,因为标题栏占了18个像素。宽度的行为相同,因为任何 Window 都有左右边框。