WPF 高度和滚动列表框 - 不可能

标签 wpf listbox

为了简单起见,我所做的就是放置一个 listbox 并在其下方放置一个按钮。虽然它看起来很简单,但事实并非如此。它不是,因为它在一个 GRID...

行的大小是星星的大小,listboxverticalAlign 顶部一直很好用。问题是我不能在它下面添加一个按钮。有一个 2 行的网格,一个星形高度和另一个自动将按钮放在表单的底部,即使 listbox 内容很少。调整大小时尝试将两行都设置为自动不起作用,因为在 listbox 中看不到滚动条...。有什么解决方法吗??

更新一些代码

 <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"  />
           <RowDefinition Height="Auto" />
         </Grid.RowDefinitions>
    <DockPanel >

       <ListBox DockPanel.Dock="Top" Name="lbStaff"  ItemsSource="{Binding}"  
            Grid.Row="0" VerticalAlignment="Top" BorderThickness="0" 
               Background="WhiteSmoke" Margin="15,10,20,30" Style="{DynamicResource 
               ListBoxUsers}" ScrollViewer.VerticalScrollBarVisibility="Visible">
       <ListBox.Resources>
         <Style  TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource 
            ListBoxTest1}"></Style>
       </ListBox.Resources>
         <ListBox.ItemTemplate>
             <DataTemplate >
                 <StackPanel Margin="5,4,5,4">
                     <TextBlock   HorizontalAlignment="Stretch"  FontSize="16"><Run 
                     Text="{Binding Name}"/> - <Run Text="{Binding   Mode=OneWay, 
                     Path=PositionString}"/></TextBlock>
                     <TextBlock >Τηλέφωνο <Run Text="{Binding Phone}"/>
                 </TextBlock>
                 </StackPanel>

             </DataTemplate>
           </ListBox.ItemTemplate>
  </ListBox>
     <Button DockPanel.Dock="Top" Grid.Row="0"   HorizontalAlignment="Right" 
       VerticalAlignment="Top"  Margin="0,10,7,0" Style="{DynamicResource 
        ButtonStyleNew1}">
       <Button.Content>
           <StackPanel Orientation="Horizontal">
               <Image Source="/WpfApplication1;component/Images/filenew1.png" 
               Stretch="None" VerticalAlignment="Center"></Image>
               <TextBlock Margin="5,0,0,0" FontSize="16">Προσθήκη Χρήστη</TextBlock>
          </StackPanel>
      </Button.Content>
     </Button>
  </DockPanel>                       

</Grid>

</Grid>

最佳答案

我通常做的不是使用网格行,而是使用 DockPanel,您可以通过嵌套每个元素来调整对齐方式。但这又完全取决于设计师如何使用网格行或任何其他方式进行设计。我从以下代码中得到的问题应该可以帮助您。 但如果您发布一些代码,那么我们就可以找出实际问题所在。

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <DockPanel>
        <DockPanel DockPanel.Dock="Top">
            <ListBox Height="50"/>
        </DockPanel>
        <DockPanel DockPanel.Dock="Bottom">
            <Button Height="20" DockPanel.Dock="Top"/>
            <Label/>
        </DockPanel>
    </DockPanel>
</Grid>

关于WPF 高度和滚动列表框 - 不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591236/

相关文章:

c# - WPF MVVM模式中两个 View 之间的共享 View 模型

WPFToolkit 图表 - 如何删除标记或更改标记大小?

c# - WPF 中的奇怪警告

c# - WPF 在列表框中拖放,带有拖放位置的预览阴影

.net - 添加后,Windows Phone MVVM 中 ListBox DataBound 到 ObservableCollection 不会更新

c# - wpf - 当未选择关联的单选按钮时,我应该如何自动将文本框变灰?

c# - 更改项目的显示方式 WPF 列表框

wpf - 为什么 ListBox AlternationIndex 总是返回 0

javascript - 由于 php 中的 js 文件,提交按钮不起作用

WPF 合并项目源列表