2012-11-16 12 views
5

Nie wiem, dlaczego obraz przecina siatkę prawej krawędzi, jak go naprawić? Kod wygląda tak:Obraz z sieci

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

Odpowiedz

2

To wygląda efekt stałych szerokościach masz ustawione (może być sumą swoich stałych szerokości kolumn jest większa od stałej szerokości okna?) To spowodowałoby komórkę siatki (i obraz), aby wyjść z widoku.

Jeśli chcesz obraz, aby wypełnić całą przestrzeń pozostałą w oknie, zmienić swój drugi ColumnDefinition szerokości do "*" zamiast 640:

<ColumnDefinition Width="*" /> 
0

EDIT: Okazuje się, to jest złe i nie jest to możliwe rozwiązanie. Przepraszam

Ok, więc nie jest jasne, jaki jest dokładnie twój problem. Jeśli podasz więcej szczegółów, ludzie będą mogli łatwiej Ci pomóc.

Z tego, co rozumiem (a to może być całkowicie błędne), mówiąc, że obraz "przekracza prawą granicę siatki", oznacza to, że obraz powinien być wyświetlany tylko w jednej kolumnie, ale "wypełnia" w następnej kolumnie.

Można tego uniknąć, dodając następujący atrybut do kontroli Obrazek:

Grid.ColumnSpan="1" 

Tak będzie:

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

To zapobiegnie obraz z przepełnione do innych kolumn i ograniczyć do tego, w którym się znajduje. Jak już powiedziałem, nie jestem całkowicie pewien, że rozumiem twój problem, ale jeśli podasz więcej szczegółów, z chęcią spróbuję poprawić swoją odpowiedź, aby ci lepiej pomóc. Teraz jednak jest to najlepsze, co mogę zrobić.

+0

Czy testowałeś to podejście? Zwykle 'ColumnSpan' służy do tego, aby element obejmował wiele kolumn, a nie tylko jeden. Plus myślę, że domyślne dla 'ColumnSpan' jest 1 tak, więc ustawienie go jawnie nic nie zmienia w tym przypadku. – WildCrustacean

+0

Nie zrobiłem tego, ale okazało się, że masz rację. Dzięki za poprawienie mnie :) – opp