Visual studio windows 10 uwp应用程序中的ContentPresenter未扩展到全宽
我有一个带有列表视图和内容演示者的主控/详细信息页面。我的问题是,当文本块的内容小于当前窗口时,内容呈现器不会填充父网格的整个剩余空间 我也尝试过添加HorizontalAlign='Stretch'和VerticalAlign='Stretch',但没有任何效果 下面是MasterDetailPage.xaml的代码Visual studio windows 10 uwp应用程序中的ContentPresenter未扩展到全宽,visual-studio,xaml,windows-10,win-universal-app,windows-10-universal,Visual Studio,Xaml,Windows 10,Win Universal App,Windows 10 Universal,我有一个带有列表视图和内容演示者的主控/详细信息页面。我的问题是,当文本块的内容小于当前窗口时,内容呈现器不会填充父网格的整个剩余空间 我也尝试过添加HorizontalAlign='Stretch'和VerticalAlign='Stretch',但没有任何效果 下面是MasterDetailPage.xaml的代码 <Page.Resources> <DataTemplate x:Key="MasterListViewItemTemplate" x:DataType
<Page.Resources>
<DataTemplate x:Key="MasterListViewItemTemplate" x:DataType="data:List">
<Grid Margin="0,11,0,13">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind Title}" Style="{ThemeResource BaseTextBlockStyle}" />
<TextBlock Style="{ThemeResource CaptionTextBlockStyle}"
Text="{x:Bind Date}"
Grid.Column="1"
Margin="12,1,0,0" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="DetailContentTemplate" x:DataType="data:List">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel
Orientation="Vertical"
Margin="0,9,12,9">
<TextBlock
Margin="0,8"
Style="{ThemeResource TitleTextBlockStyle}"
TextWrapping="WrapWholeWords"
Text="{x:Bind Title}"/>
<RichTextBlock
x:Name="textContent"
IsTextSelectionEnabled="True"
TextWrapping="WrapWholeWords"
common:Html2TextParser.Html="{x:Bind Content}"/>
</StackPanel>
</ScrollViewer>
</DataTemplate>
<DataTemplate x:Key="comboListTemplate" x:DataType="data:Combo">
<TextBlock Text="{x:Bind Title}"/>
</DataTemplate>
</Page.Resources>
<Grid x:Name="LayoutRoot" Loaded="LayoutRoot_Loaded" UseLayoutRounding="True">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveStates" CurrentStateChanged="AdaptiveStates_CurrentStateChanged">
<VisualState x:Name="DefaultState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="720" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="NarrowState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MasterColumn.Width" Value="*" />
<Setter Target="DetailColumn.Width" Value="0" />
<Setter Target="MasterListView.SelectionMode" Value="None" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="MasterColumn" Width="320" />
<ColumnDefinition x:Name="DetailColumn" Width="*" />
</Grid.ColumnDefinitions>
<ComboBox
Name="comboList"
Margin="2,2,2,2"
ItemsSource="{x:Bind comboSource.combos}"
LayoutUpdated="comboList_LayoutUpdated"
SelectionChanged="comboList_SelectionChanged"
ItemTemplate="{StaticResource comboListTemplate}"
HorizontalAlignment="Stretch" />
<ListView
x:Name="MasterListView" ItemsSource="{x:Bind listSource.lists}"
Grid.Row="1"
ItemContainerTransitions="{x:Null}"
ItemTemplate="{StaticResource MasterListViewItemTemplate}"
IsItemClickEnabled="True"
ItemClick="MasterListView_ItemClick">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
<ContentPresenter
x:Name="DetailContentPresenter"
Grid.Column="1"
Grid.RowSpan="2"
BorderThickness="1,0,0,0"
BorderBrush="{ThemeResource SystemControlForegroundBaseLowBrush}"
Content="{x:Bind MasterListView.SelectedItem, Mode=OneWay}"
ContentTemplate="{StaticResource DetailContentTemplate}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="12,0,0,0">
<ContentPresenter.ContentTransitions>
<!-- Empty by default. See MasterListView_ItemClick -->
<TransitionCollection />
</ContentPresenter.ContentTransitions>
</ContentPresenter>
</Grid>
您可以尝试将contentpresenter放在一个视图框中。ViewBox设计用于拉伸和缩放单个子对象以填充可导航空间
我希望这对您有所帮助:)我测试了您的xaml,但无法重现您的问题。请查看屏幕截图
蓝色空间是contentPresenter,橙色空间是ScrollViewer,最后是带有虚拟文本的文本块。
在为ContentPresenter和主网格本身设置了不同的颜色后,我发现甚至我的主网格“LayoutRoot”也没有扩展到全宽
原因是我使用的是SplitView,并且在SpiltView的内容元素中导航MasterDetailPage.xaml。我只需为拆分视图设置HorizontalAlign='Stretch',它就解决了我的问题 它不起作用。。尽管viewbox确实拉伸了内容以适应空间,但内容被缩小了以适应空间,因此scrollviewer从未显示出检查此内容的欲望。。我好像犯了一个错误。它是一个RichTextBlock,而不是一个简单的TextBlock。我已更改代码以反映这一点。。还添加了一个参考错误快照。我测试了您编辑的代码。“它似乎起作用了。”Jayden Gu卷轴查看器也起作用了吗?添加到richtextblock中的run元素是否也应将水平对齐设置为“拉伸”?如果是,我如何添加它?不运行。。这是块*块也需要水平对齐设置为拉伸吗?