0

WPF グリッド内にあるキャンバスに動的にペイントしていますが、キャンバスもグリッドも適切に伸びていません。これが私のコードの一部です....

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

4

2 に答える 2

1

回答を確認してください行の高さを設定してみてください *

<Grid Name="gridMain" > 
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinition>
</Grid>
于 2014-11-19T07:34:18.653 に答える
0

Width または Height aGridが "NaN" に等しい場合、その Size に基づいて決定されますChildren。問題は、Childrenのサイズをグリッドのサイズと同じに設定したことです。これは機能せず、結果は常に 0 になります。

子のサイズは、その内容または子に基づいて決定されます。明確なサイズにしたい場合は、Height と Width を特定の double に等しくなるように設定します。

于 2012-12-09T08:05:49.237 に答える