C# 将GridView拉伸到父控件边界
我有一个自定义控件,在其中放置带有GridView的SemanticZoom。 问题是,如果GridView只有很少的项可显示,则SemanticZoom的宽度小于容器的宽度。结果放大缩小按钮在屏幕中部放置不正确。 如果有许多项要显示,那么GridView会将自身拉伸到父控件边界,一切正常 即使里面只有很少的项目,如何正确地拉伸语义缩放(或内部网格视图)? 自定义容器代码:C# 将GridView拉伸到父控件边界,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有一个自定义控件,在其中放置带有GridView的SemanticZoom。 问题是,如果GridView只有很少的项可显示,则SemanticZoom的宽度小于容器的宽度。结果放大缩小按钮在屏幕中部放置不正确。 如果有许多项要显示,那么GridView会将自身拉伸到父控件边界,一切正常 即使里面只有很少的项目,如何正确地拉伸语义缩放(或内部网格视图)? 自定义容器代码: <controls:DataLoader Grid.RowSpan="2" >
<controls:DataLoader Grid.RowSpan="2" >
<controls:DataLoader.DataContent>
<SemanticZoom x:Name="SemanticZoom" Style="{StaticResource SemanticZoomStyle}" Margin="0,0,0,0" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch">
<SemanticZoom.ZoomedOutView>
..skipped..
</SemanticZoom.ZoomedOutView>
<SemanticZoom.ZoomedInView>
<GridView x:Name="ZoomedInView"
ItemsSource="{Binding Source={StaticResource GroupedPatients}}"
ItemTemplate="{StaticResource PatientItemTemplate}"
Style="{StaticResource DataGridViewStyle}"
behaviors:SelectionChangedCommandBehavior.Command="{Binding SelectPatientCommand}" Margin="0,0,0,0"
HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"
Background="Yellow">
<GridView.GroupStyle>
<GroupStyle HeaderTemplate="{StaticResource PatientItemGroupHeaderTemplate}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
</SemanticZoom.ZoomedInView>
</SemanticZoom>
</controls:DataLoader.DataContent>
…跳过。。
GridView样式:
<Style x:Key="DataGridViewStyle" TargetType="GridView">
<Setter Property="IsItemClickEnabled" Value="True"/>
<Setter Property="SelectionMode" Value="None"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
</Style>
</controls:DataLoader>
正确的解决方案是使用Grid而不是GridView我只能说“哦,我的天哪!”。DataContext
用于保存/提供数据,而不是UI元素。。。线索就在名字里。从MSDN上的页面:获取或设置元素参与数据绑定时的数据上下文。当你用DataLoader.DataContent
做一些奇怪的事情时,所有的卡片都不在桌子上了。。。任何事情都有可能发生。顺便说一句,简单的答案是将父容器控件的。不过,我不想说它是否仍然适用于您奇怪的代码。它是数据内容,而不是示例中的上下文。所有可能的属性都已设置为“拉伸”,但没有帮助。抱歉。。。我的错。但这里的任何人都无能为力,因为您还没有提供我们可以测试的文件。我如何将其上传到这里?Minimal example是一个完整的VS解决方案,它超出了复制粘贴几行代码的范围。我必须把档案上传到某个地方