2012-04-13 4 views
2

ユーザーから多くの入力があるページを作成しました。したがって、ユーザーは下にスクロールしてアップロードボタンを押すことができるはずです。ページを下にスクロールするには、グリッド外でScrollViewerを使用しました。私はスクロールすることができますが、スクロールした後にページはスクロールし続けます。ここでScrollViewerがWP7をスクロールします。

は私のコードです:

<!--ContentPanel - place additional content here--> 
     <Grid x:Name="ContentPanelButtom" Grid.Row="1" > 
      <ScrollViewer > 
       <Grid x:Name="ContentPanel" Background="black"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="154" /> 
         <ColumnDefinition Width="326" /> 
        </Grid.ColumnDefinitions> 
        <Image Height="109" HorizontalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="167" Margin="23,19,0,0" Source="{Binding Path=ImageSoruce, Mode=TwoWay}" Grid.ColumnSpan="2" /> 
        <TextBox Height="71" HorizontalAlignment="Left" Margin="12,161,0,0" Name="nameInput" Text="{Binding Path=Name, Mode=TwoWay}" VerticalAlignment="Top" Width="430" Grid.ColumnSpan="2" /> 
        <TextBlock Height="56" HorizontalAlignment="Left" Margin="23,134,0,0" Name="nameLabel" Text="Name" VerticalAlignment="Top" Width="130" FontSize="25" /> 
        <TextBlock FontSize="25" Height="60" HorizontalAlignment="Left" Margin="23,238,0,0" Name="descriptionLabel" Text="Description" VerticalAlignment="Top" Width="130" /> 
        <TextBox Height="72" HorizontalAlignment="Left" Margin="12,265,0,0" Name="descriptionInput" Text="{Binding Path=Description, Mode=TwoWay}" VerticalAlignment="Top" Width="430" IsEnabled="True" Grid.ColumnSpan="2" /> 
        <TextBlock FontSize="25" Height="60" HorizontalAlignment="Left" Margin="23,343,0,0" Name="locationLabel" Text="Location" VerticalAlignment="Top" Width="130" /> 
        <TextBlock Height="46" HorizontalAlignment="Left" Margin="24,384,0,0" Name="locationInput" Text="{Binding Path=Location, Mode=TwoWay}" VerticalAlignment="Top" Width="401" Loaded="locationInput_Loaded" Grid.ColumnSpan="2" /> 
        <toolkit:ListPicker SelectionMode="Multiple" FullModeHeader="CATEFORIES" x:Name="ListPickerCategories" CacheMode="BitmapCache" HorizontalAlignment="Left" Margin="25,492,0,0" VerticalAlignment="Top" Width="401" Grid.ColumnSpan="2" ItemsSource="{Binding Categories}" Height="78"></toolkit:ListPicker> 
        <TextBlock FontSize="25" Height="60" HorizontalAlignment="Left" Margin="24,436,0,0" Name="textBlock1" Text="Categories" VerticalAlignment="Top" Width="130" /> 
        <Button Content="Upload" Height="86" HorizontalAlignment="Left" Margin="26,604,0,0" Name="UploadButton" VerticalAlignment="Top" Width="411" Click="UploadButton_Click" Grid.ColumnSpan="2" /> 
       </Grid> 
      </ScrollViewer> 
      </Grid> 

この問題の原因となることができますし、どのように私はそれを解決するのですか?

答えて

6

StackPanelsを使用して、要素を上下に配置します。あなたのmarginsheightwidthおよびその他の絶対位置のもの

<Grid x:Name="ContentPanelButtom" Grid.Row="1" > 
    <ScrollViewer> 
     <StackPanel> 
      <!-- elements here --> 
     </StackPanel> 
    </ScrollViewer> 
</Grid> 
0

私は同じ問題を持っていたすべてを削除します。しかし最後に私はそれを解決しました、私はちょうどこれを行うために高さのプロパティを使用しました。 ScrollViewerのは、(例:グリッド/ StackPanelの/ボーダーなど...)コンテナを作成Indide

  • まずScrollViewerの
  • を作成するには、次の手順に

    • をくださいとその中のすべてのcontrollsを置きます。 ScrollViewerのとコンテナの
    • 設定された固定身長(注:コンテナの高さは、ScrollViewerのの高さよりも大きくなければなりません)

    今すぐあなたもコンテナグリッドをスクロールすることができ、以下のコード

    <ScrollViewer Height="500"> 
         <Grid Name="Container" Height="700"> 
          <TextBox/> 
          <TextBox/> 
          <TextBox/> 
         </Grid> 
    </ScrollViewer> 
    

    を参照してください。 KeyBoardが表示されたり、TextBoxにフォーカスしたりします。

    関連する問題