wpf布局帮助
我有以下驻留在wpf用户控件中的xaml-wpf布局帮助,wpf,xaml,Wpf,Xaml,我有以下驻留在wpf用户控件中的xaml- <Grid> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="*" /> <RowDefinition Height="30" /> </Grid.RowDefinitions
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="*" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBox
x:Name="MyTxt"
TextWrapping="WrapWithOverflow"
Grid.Row="0"
/>
<ListView
x:Name="MyList"
ItemsSource="{Binding}"
Grid.Row="1"
/>
<Label
Grid.Row="2"
/>
</Grid>
此控件嵌套在视图的网格中。我希望文本框在网格顶部有一个设定的高度,底部的标签在网格底部显示为一个固定的高度。我希望列表视图填充屏幕区域的其余部分
我遇到的问题是listview的大小不正确。如果我有太多的记录显示在它,它超出了窗口,没有滚动条可向下滚动。因此,如果数据延伸到屏幕右侧,我就无法到达底部查看垂直滚动条
我能够将listview设置为一个固定的高度,这很有效,但我希望它更具动态性,如果可能的话,可以随窗口调整大小
有没有人有什么建议可以让你的尺码正确
谢谢你的想法
编辑-这是主窗口视图中包含网格的xaml。这是根据乔希·史密斯的文章改编的
我确实设置了scrollviewer属性,如下所述。
下面是工作区的数据模板
<DataTemplate x:Key="WorkspacesTemplate">
<TabControl
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}"
Margin="4"
/>
</DataTemplate>
您可以将这些属性添加到listview吗
ScrollViewer.CanContentScroll = "True"
ScrollViewer.VerticalScrollBarVisibility="Visible" <!-- or "Auto" -->
我觉得其他一切都很好。你有3行,其中2行是绝对的,另一行是拉伸。第二行还有listview,因此它应该会随之延伸
如果不起作用,请尝试在scrollviewer中包装ListView
<ScrollViewer>
<ListView/>
</ScrollViewer>
默认情况下,列表框的垂直对齐方式是什么?您可能需要将垂直对齐设置为“拉伸”
<ListView
x:Name="MyList"
ItemsSource="{Binding}"
Grid.Row="1"
VerticalAlignment="Stretch"
/>
我能让它工作。如果我将主窗口中的包含网格更改为使用ContentControl而不是HeaderedcontentControl,它将按预期工作
谢谢您的帮助。您是否也可以发布包含您的用户控件的网格?
<ListView
x:Name="MyList"
ItemsSource="{Binding}"
Grid.Row="1"
VerticalAlignment="Stretch"
/>