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

EDIT: Оказывается, это не так, и это не жизнеспособное решение. Извините

Хорошо, так что действительно непонятно, что именно ваша проблема. Если вы предоставите более подробную информацию, люди смогут вам помочь.

Из чего я могу понять (и это может быть совершенно неправильно), сказав, что изображение «пересекает правую границу сетки» означает, что изображение должно отображаться только в одном столбце, но оно «накладывается» на следующий столбец.

Этого можно избежать, добавив следующий атрибут к элементу управления Image:

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

Смежные вопросы