3

私のWindowsPhoneアプリケーションでは、

    <ScrollViewer Margin="0,0,0,0"  VerticalAlignment="Top">
        <StackPanel Margin="0,0,0,0" Width="Auto"  >
            <RichTextBox x:Name="Browser" Foreground="Black" Height="Auto" cxi:WebBrowserHelper.Html="{Binding BrowserHtml}" Background="Transparent" HorizontalAlignment="Left" VerticalAlignment="Top"  Width="460" Margin="0,0,0,0" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" />
        </StackPanel>
    </ScrollViewer>

ただし、すべてのテキストが表示されるわけではありません。この問題を解決するにはどうすればよいですか?

ここに画像の説明を入力してください ここに画像の説明を入力してください

Update1

height = 700を入れた後:(2番目の画像を参照)

Update2

    <StackPanel Margin="0,0,0,0" Width="480" Orientation="Vertical">
        <ScrollViewer Margin="0,0,0,0"  VerticalAlignment="Top" Height="1000" >
            <StackPanel Margin="0,0,0,0" Width="Auto"  >
                <RichTextBox x:Name="Browser" Foreground="Black" Height="1000" cxi:WebBrowserHelper.Html="{Binding BrowserHtml}" Background="Transparent" HorizontalAlignment="Left"   Width="460" Margin="0,0,0,0" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" />
            </StackPanel>
        </ScrollViewer>
    </StackPanel>
4

3 に答える 3

2

問題はRichTextBoxではなく、StackPanelsの使用が原因です。以下の例は、単純な長方形で問題/解決策を再現しています。

垂直方向のStackPanelは、コンテンツのサイズに拡張されます。つまり、その中のScrollViewerは、ぴったり合うように正しく伸ばすことができません。ScrollViewerが機能するには、固定サイズである必要があります。

この簡単な例は、同じ理由で機能しません。

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel Margin="0,0,0,0" Width="480" Orientation="Vertical">
            <ScrollViewer Margin="0,0,0,0"  VerticalAlignment="Stretch">
                  <StackPanel Margin="0,0,0,0" Width="Auto"  >
                       <Rectangle Fill="Aqua" Height="200"/>
                       <Rectangle Fill="Red" Height="200"/>
                       <Rectangle Fill="Yellow" Height="200"/>
                       <Rectangle Fill="Blue" Height="200"/>
                       <Rectangle Fill="Green" Height="200"/>
                  </StackPanel>
             </ScrollViewer>
         </StackPanel>
    </Grid>

これは機能します(ScrollViewerの外部にスタックパネルはありません):

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <ScrollViewer Margin="0,0,0,0"  VerticalAlignment="Stretch" >
             <StackPanel Margin="0,0,0,0" Width="Auto"  >
                  <Rectangle Fill="Aqua" Height="200"/>
                  <Rectangle Fill="Red" Height="200"/>
                  <Rectangle Fill="Yellow" Height="200"/>
                  <Rectangle Fill="Blue" Height="200"/>
                  <Rectangle Fill="Green" Height="200"/>
             </StackPanel>
         </ScrollViewer>
    </Grid>
于 2012-05-09T13:06:16.303 に答える
1

RichTextBoxでheight="auto"を設定する必要があります。次のコードは私のために働きます:

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <ScrollViewer Margin="0,0,0,0"  VerticalAlignment="Stretch" >
            <RichTextBox ScrollViewer.VerticalScrollBarVisibility="Visible"  Name="richTextBox" Style="{StaticResource RichTextBoxStyle1}" Height="auto"/>
            </ScrollViewer>
        </Grid>
于 2013-07-01T07:09:41.377 に答える
0

ScrollViewerを使用する場合、uはその高さ要素を指定する必要があります(グリッドのように固定または動的)。それ以外の場合は、画面を超えていても、コンテンツごとにすべての高さが必要です。したがって、「ScrollViewer Height ="700"....」のようなものを試してください。

于 2012-05-09T13:03:38.123 に答える