Привязка высоты списка не работает должным образом и пропорциональное изменение размера изображения - PullRequest
0 голосов
/ 28 января 2012

Во время разработки какой-то программы я столкнулся с некоторыми проблемами.Во-первых, я связал свойство 'Height' элемента управления listbox с 'ActualHeight' моей stackPanel.Вот некоторый код XAML, который у меня есть:

<ListBox Name="listQuotes" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
       Width="{Binding ElementName=stackPanelQuotes, Path=ActualWidth}"
       Height="{Binding ElementName=stackPanelQuotes, Path=ActualHeight}" 
       ItemsSource="{Binding}" ItemTemplate="{StaticResource quotesFeedTemplate}"
       Background="Transparent" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
</ListBox>

Когда я расширяю свое окно, размер списка изменяется, но когда я снова уменьшаю его, сам список не изменяется обратно, фактически даже полоса прокруткиостается тот же диапазон ... Так как я должен получить эту работу правильно?

Во-вторых, моя программа состоит из двух частей - заголовка и основной части. Заголовок должен оставаться статическим, в то время как основная часть(два списка в двух столбцах) должны изменить размер окна.Под изменением размера я подразумеваю, что ширина должна влиять как на заголовок, так и на основную часть, а высота должна влиять только на основную часть

Обычный вид

Normal view

Искаженное представление

Corrupted view

И третье.Как я могу пропорционально изменить размер моего изображения (скажем, 3: 4), когда я переворачиваю окно (независимо от того, какая ширина или высота)

1 Ответ

2 голосов
/ 28 января 2012

Вы можете получить нужный эффект, удалив привязки высоты и ширины и оставив их автоматически.

<Grid Name="Quotes">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="3*" />
        <ColumnDefinition Width="4*" />
    </Grid.ColumnDefinitions>
    <ListBox Grid.Column="0" MinWidth="250" Name="listQuotes" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
               ItemsSource="{Binding QuotesList}" 
               Background="Transparent" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
   </ListBox>
   <ListBox Grid.Column ="1" MinWidth="250" Name="listQuotes2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
               ItemsSource="{Binding QuotesList}" 
               Background="Transparent" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
   </ListBox>
</Grid>

Вы можете получить требуемый пропорциональный размер, используя сетку с опубликованными мною определениями столбцов. Они останутся пропорциональными при изменении размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...