在ScrollView中防止Windows 8 XAML应用程序中的页面扩展框架
我正在创建一个基本应用程序来测试基于XAML的Windows8应用程序中的一些功能 为了简化我的示例,我创建了以下结构,但在实际应用中,它会更复杂:在ScrollView中防止Windows 8 XAML应用程序中的页面扩展框架,xaml,windows-8.1,Xaml,Windows 8.1,我正在创建一个基本应用程序来测试基于XAML的Windows8应用程序中的一些功能 为了简化我的示例,我创建了以下结构,但在实际应用中,它会更复杂: <Page x:Name="pageRoot" x:Class="ScrollingTest.Xaml.MainPage" DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" xmlns="http://s
<Page
x:Name="pageRoot"
x:Class="ScrollingTest.Xaml.MainPage"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ScrollingTest.Xaml"
xmlns:common="using:ScrollingTest.Xaml.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ScrollViewer
HorizontalScrollMode="Auto"
HorizontalScrollBarVisibility="Auto"
VerticalScrollMode="Disabled"
VerticalScrollBarVisibility="Hidden" Margin="0,0,0,10" VerticalContentAlignment="Stretch" BorderBrush="#FF0BC8FF" BorderThickness="1" Grid.Row="1" >
<Frame Content="Frame" Name="theFrame" Margin="100" Width="3000" BorderBrush="Red" BorderThickness="1"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.VerticalScrollBarVisibility="Visible" />
</ScrollViewer>
</Grid>
</Page>
加载到框架中的页面高度可变(它包含listview)
问题是,随着子页面高度的增加,ScrollViewer的高度也会增加,这意味着内容会被强制移出屏幕底部
我想要实现的是对父页面进行水平滚动,然后在子页面上使用垂直滚动。在实际应用程序中,可能会有许多子页面,可能在网格中
似乎将框架放入ScrollViewer会破坏框架的内部滚动功能
如果有人能告诉我一个更好的方法来实现我的最终结果,或者我需要改变一些属性,我将非常感激。我最终使用了以下评论中的解决方案: 这并不是我想要的,因为当改变方向时,它不会自动处理,但它必须这样做 另一个选项是处理页面的SizeChanged事件,并从事件处理程序(
theFrame.height=scrollViewer.ActualHeight
)更新高度。这样,它也可以处理方向的改变
Height="{Binding ElementName=scrollViewer, Path=ActualHeight}"