列表框高度绑定无法正常工作&图像控制按比例调整大小

时间:2012-01-28 16:18:46

标签: wpf image xaml listbox

在开发某些程序的过程中,我遇到了一些问题。首先是我将列表框控件的“高度”属性绑定到我的stackPanel的“ActualHeight”。这是我的一些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 个答案:

答案 0 :(得分:2)

您可以通过删除高度和宽度绑定并将其保留为自动来获得所需的效果。

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

您可以使用我发布的Columnn定义的网格来获得您想要的比例大小。当你调整大小时,这些将保持成比例。