2

Windows Phone アプリにページがあります。このページはかなり「高い」です。そのため、ページ全体がScrollViewer. ページの下部に向かってTextBox. この TextBox は、 を使用して複数行にすることを目的としていTextBoxますTextWrapping="Wrap"TextBoxユーザーが入力したコンテンツを表示するには、ユーザーが上下にスクロールできるようにする必要があります。ただし、それ自体をスクロールすることはできませんTextBox。代わりに、スクロールしようとすると、ページ全体がスクロールします。これを解決するにはどうすればよいですか?追加してみましScrollViewer.VerticalScrollBarVisibility="Auto"たが、それもうまくいかないようです。これが私の XAML の抜粋です。

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    <TextBlock x:Name="ApplicationTitle" Text="APPNAME" Style="{StaticResource PhoneTextNormalStyle}" />
    <TextBlock x:Name="PageTitle" Text="{Binding Path=PageTitle}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
  </StackPanel>

  <ScrollViewer Grid.Row="1">
    <Grid x:Name="ContentPanel" Margin="12,0,12,0">
       ...
      <TextBox x:Name="bodyTextBox" Text="{Binding Path=Body, Mode=TwoWay}" Height="145"  TextWrapping="Wrap" InputScope="Text" Grid.Row="6" MaxLength="1024" Margin="0,-8,0,0" />
    </Grid>
  </ScrollViewer>
</Grid>

ご意見をお寄せいただきありがとうございます。

4

2 に答える 2

2

私の経験では、これは通常、「auto」高さタグまたは「starSizing」高さタグをどこかで誤って使用したことが原因です。関連する要素(特にRowDefinition)に固定の高さを設定してみて、それが役立つことを確認します

于 2013-03-30T20:30:37.763 に答える
0

scrollviewer を使用する必要のない複数行のテキストボックスをスクロールするには、acceptreturn 、 textwrapping="wrap", maxheight="160" (複数行を表示するため) と VerticalScrollBarVisibility="Visible" を有効にするだけです。

テキストボックスのスクロールを確認するには、ボタンをクリックして押したままにすると、キャレットが表示されます。キャレットを上下に移動すると、テキストボックスがスクロールされます。

于 2013-12-02T19:37:15.580 に答える