图像出网格

时间:2012-11-16 23:00:37

标签: wpf

我不知道为什么Image穿过网格右边框,如何修复它? 代码看起来像这样:

    <Grid>
        <Grid Name="grid1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="260" />
                <ColumnDefinition Width="640" />
            </Grid.ColumnDefinitions>
            <Image Grid.Column="1" HorizontalAlignment="Stretch" Margin="0" Name="image1" Stretch="Fill" VerticalAlignment="Stretch" Source="path.png"/>
            <ListView Height="361" HorizontalAlignment="Left" Margin="10,10,0,0" Name="listView1" VerticalAlignment="Top" Width="240" ItemsSource="{Binding}" />
            <Button Content="Add New Gesture" Height="39" HorizontalAlignment="Left" Margin="10,387,0,0" Name="button1" VerticalAlignment="Top" Width="112" Click="button1_Click" />
            <Button Content="Delete" Height="39" HorizontalAlignment="Left" Margin="191,387,0,0" Name="button2" VerticalAlignment="Top" Width="59" />
            <Button Content="Modify" Height="39" HorizontalAlignment="Left" Margin="128,387,0,0" Name="button3" VerticalAlignment="Top" Width="57" />
        </Grid>
    </Grid>

2 个答案:

答案 0 :(得分:2)

这看起来像是你设置的固定宽度的效果(也许固定列宽的总和大于固定的窗口宽度?)这会导致网格单元(和图像)离开视图。

如果您希望图片填充窗口中剩余的整个空间,请将第二个ColumnDefinition宽度更改为"*"而不是640

<ColumnDefinition Width="*" />

答案 1 :(得分:0)

编辑:事实证明这是错误的,这不是一个可行的解决方案。遗憾

好的,所以真的不清楚你究竟是什么问题。如果您提供更多详细信息,人们将能够更轻松地为您提供帮助。

从我能理解的(这可能是完全错误的),通过说图像“穿过网格右边界”你的意思是图像应该只显示在一列中,但它“覆盖”到下一列。

可以通过向Image控件添加以下属性来避免这种情况:

Grid.ColumnSpan="1"

所以它会是:

<Image Grid.Column="1" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Margin="0" Name="image1" Stretch="Fill" VerticalAlignment="Stretch" Source="path.png"/>

这样可以防止图像溢出到其他列,并限制它所在的位置。正如我之前所说,我不完全确定我理解你的问题,但如果你提供更多细节,我会很乐意尝试修改我的答案以更好地帮助你。但是现在,这是我能做的最好的事情。