2011-12-27 11 views
1

ScrollViewer内にいくつかのコントロールグループがあります。私は垂直スクロール中にフリーズするために、このコントロールの1つが必要です。これはどうすればいいですか?垂直スクロール時のフリーズコントロール

+0

フリーズとはどういう意味ですか? – snurre

+0

snurre、私は他のコントロールと一緒にスクロールしないことを意味します。たとえば、DataGridの列ヘッダーでは、垂直スクロール中は移動しません。 – vkrzv

+1

コントロールをScrollViewerから移動し、実際にスクロールする必要のある項目のみを保持する必要があります。 – snurre

答えて

0

ListViewをいくつか創造的に使用することで、目的の効果を得ることができます。特定のListView固有の動作を避けるために、ListViewテンプレートの一部を調整する必要がある場合もあります。

<ListView ScrollViewer.CanContentScroll="False"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn> 
        <GridViewColumn.HeaderTemplate> 
         <DataTemplate> 
          <!-- Header/Frozen content goes here --> 
          <!-- Using Border as example --> 
          <Border Width="1000" Height="40"> 
           <Border.Background> 
            <LinearGradientBrush> 
             <GradientStop Offset="0" Color="Lime"/> 
             <GradientStop Offset="1" Color="Black"/> 
            </LinearGradientBrush> 
           </Border.Background> 
          </Border> 
         </DataTemplate> 
        </GridViewColumn.HeaderTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
     <ListViewItem> 
      <ListViewItem.Style> 
       <Style TargetType="{x:Type ListViewItem}"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate> 
           <!-- Other content goes here --> 
           <!-- Using Border as example --> 
           <Border Width="1000" Height="1000"> 
            <Border.Background> 
             <LinearGradientBrush> 
              <GradientStop Offset="0" Color="White"/> 
              <GradientStop Offset="1" Color="Black"/> 
             </LinearGradientBrush> 
            </Border.Background> 
           </Border> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </ListViewItem.Style> 
     </ListViewItem> 
    </ListView> 
+0

ありがとうございますが、これは動作しません。垂直スクロールバーは表示されません。垂直スクロールバーにアクセスする作業であっても、最初は右に水平にスクロールする必要があります。それは私には不適切です。 – vkrzv

関連する問題