好吧,这听起来很傻,但我不能让ScrollViewer正常工作.我需要做的是
让Silverlight页面使用HTML页面的100%宽度/高度
在Sliverlight页面的顶部有一个高度= 160px的控件,然后其余的(100% - 160px)是一个动态更改内容的ScrollViewer.
所以在HTML页面中我有:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
Run Code Online (Sandbox Code Playgroud)
然后在XAML中:
<Grid x:Name="LayoutRoot" Height="Auto">
<StackPanel Orientation="Vertical" Height="Auto">
<App:ASilverlightControl x:Name="Header" Height="160"/>
<ScrollViewer Name="svw" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible" Height="Auto" >
<StackPanel Orientation="Vertical" x:Name="DynamicContentHere">
</StackPanel>
</ScrollViewer>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
现在,无论我尝试什么,ScrollViewer总是会扩展/收缩以包含StackPanel中的所有元素,即使这意味着在屏幕下溢出但没有垂直滚动条.
我能让它工作的唯一方法是将高度= 800设置为ScrollViewer.
tho*_*sen 18
如果将ScrollViewer放在StackPanel中,它将无法工作.StackPanel将始终允许ScrollViewer内容所需的所有空间.
您应该使用包含两行的Grid:
<Grid x:Name="LayoutRoot" Height="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="160"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<App:ASilverlightControl x:Name="Header" Grid.Row="0"/>
<ScrollViewer Name="svw" Grid.Row="1"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Visible">
<StackPanel Orientation="Vertical" x:Name="DynamicContentHere">
...
</StackPanel>
</ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)
第二个RowDefinition中的*将自动使ScrollViewer尽可能地填充,但仍然将其保留在可视区域内,从而使ScrollViewer工作.
| 归档时间: |
|
| 查看次数: |
9014 次 |
| 最近记录: |