我动态地绘制到我的WPF网格内部的画布上,但画布或网格都不能正确拉伸。下面是我的一些代码....WPF Grid不与窗口拉伸
<Window x:Class="WPFNimGame.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Game of Nim" Height="auto" Width="auto" PreviewKeyDown="Window_PreviewKeyDown_1" Name="Window">
<Grid Name="Grid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="33"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="10" Grid.RowSpan="2"/>
<!--<Grid.Background>-->
<!--<ImageBrush ImageSource=".\Properties\black-diamond-plate.bmp" -->
<!-- </Grid.Background>-->
<DockPanel VerticalAlignment="Top" Height="20" Width="{Binding ElementName=Window,Path=Width}" Grid.RowSpan="2" >
<Menu IsMainMenu="True" Margin="0" >
<MenuItem Name="File" Header="File" Click="File_Click_1">
<MenuItem Name="NewGame" Header="New Game" />
</MenuItem>
</Menu>
</DockPanel>
<Canvas Name="paintCanvas" Width="{Binding ElementName=Grid,Path=ActualWidth}" Height="{Binding ElementName=Grid,Path=ActualHeight}" MouseLeftButtonDown="paintCanvas_MouseLeftButtonDown" Grid.Row="1" >
<Border BorderBrush="Blue" BorderThickness="10" ></Border>
</Canvas>
</Grid>
您可以设置第1行的高度在RowDefinition但对于第1行的内容,您设定的高度,以网格的高度。在数学中,他们称之为过度定义。 – Paparazzi
取出所有对垂直/水平对齐,高度和宽度的引用。如果您希望对象始终位于特定的行/列中,则只需指定列,行,列跨度和行跨度。要扩展您的网格,请在定义旁边放置一个*(例如33 *或仅*)。希望这可以帮助! –