2012-11-16 23 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