2012-11-16 9 views
5

我不知道为什么图片跨越网格右边框,如何修复? 代码看起来像这样:图片出格

<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

这看起来像你已经设置了固定的宽度(也许你的固定列宽度的总和大于固定窗口宽度更大?),这将导致网格单元的效果(和图像)走出视野。

如果你想要的形象填补剩余的窗口的整个空间,你的第二个ColumnDefinition宽度改为"*"而不是640

<ColumnDefinition Width="*" /> 
0

编辑:原来,这是错误的,它不是一个可行的解决方案。对不起

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

根据我所能理解的(这可能完全错误),通过说图像“跨越网格右边界”,您的意思是图像应该只显示在一列中,但是它“超出”到下一列中。

这可以通过添加以下属性到图像控制来避免:

Grid.ColumnSpan="1" 

因此,这将是:

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

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

+0

你测试过这种方法吗?通常'ColumnSpan'用于让项目覆盖多个列,而不是将其限制为一个。另外我认为'ColumnSpan'的默认值是1,因此在这种情况下明确设置它并不会改变任何内容。 – WildCrustacean

+0

我没有,但事实证明你是对的。感谢纠正我:) – opp