Xaml Listbox扩展整个usercontrol

时间:2017-03-03 11:57:13

标签: wpf xaml

所以我有一个列表框显示usercontrol中的一些数据:

<UserControl x:Class="FSBEM.UCs.SomeUC"
             VerticalAlignment="Stretch"
             HorizontalAlignment="Stretch">

     <Grid Margin="7,0,9,0">

        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <ListBox x:Name="ListBox"
                 SelectedValuePath="Id"
                 ItemsSource="{Binding}"
                 Margin="0,5,5,5">
                 <ListBox.ItemTemplate>
                       <DataTemplate>
                           <DockPanel>
                              <TextBlock DockPanel.Dock="Right">
                                 <TextBlock.Text>
                                    <MultiBinding StringFormat="{}  {0} ">
                                        <Binding Path="Name" />
                                    </MultiBinding>
                                 </TextBlock.Text>
                              </TextBlock>
                              <Button x:Name="Btn_Delete"
                                      Padding="5,0,5,0"
                                      CommandParameter="{Binding}">
                                 <Image Source="/Media/Icons/Delete_Icon.png"
                                        Width="10"
                                        Height="10"/>
                              </Button>
                            </DockPanel>
                       </DataTemplate>
                  </ListBox.ItemTemplate>
        </ListBox>

        <TextBox Name="txtBox"
                 Height="22"
                 Margin="0,14,5,5"/>
    </Grid>

</UserControl>

问题是列表框没有坚持主窗口边框..相反,它将整个用户控件拉伸到主窗口之外..我尝试设置MaxHeight,但它不是我的解决方案。我想处理它以坚持主窗口边框,并在有太多数据显示时显示滚动条。

更新 这是MainWindow的xaml代码:

<Window x:Class="FSBEM.MainWindow"
        Height="471.997"
        Width="1186.374" 
        WindowStartupLocation="CenterScreen" 
        WindowState="Maximized">

<ScrollViewer FlowDirection="RightToLeft"
              HorizontalScrollBarVisibility="Auto"
              VerticalScrollBarVisibility="Auto">
   <Grid x:Name="MainGrid"
         FlowDirection="RightToLeft">
        <Menu x:Name="menu"
              HorizontalAlignment="Stretch"
              Height="23"
              VerticalAlignment="Top" />

        <Grid Name="InnerGrid"
              Margin="0,23,0,20" />

   </Grid>
</ScrollViewer>

我正在“InnerGrid”

中显示usercontrol

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题,它是MainWindow中的ScrollBarViewer。这就是为什么列表框可以自由伸展。删除ScrollBarViewer解决了这个问题。