2017-12-18 302 views
-1

我建立使用WPF,這樣的垂直應用時間表: enter image description hereWPF如何使控制始終在最前面,並留在查看用戶向下滾動後

該應用程序分爲2個邊,上左邊是圓圈的日期,右邊是細節。

讓我們說在我的屏幕上,我只能看到左邊的兩個圓圈,右邊是一些非常長的細節。我想要實現的是,當我向下滾動時,第一個圓圈在屏幕上移動,然後卡在頂部,而不是離開我的視野。

這就像電報在Android上,發件人的顯示畫面將永遠在最前面,無論用戶向上或向下滾動,直到下一個發件人的顯示畫面的用武之地。

我希望我能解釋自己清晰。我已經設法在WPF中創建應用程序,現在我想要做上述增強,但我不知道從哪裏開始。

編輯: 這裏有兩張圖片來解釋我想達到什麼。

之前向下滾動

Before scrolling down

向下滾動

After scrolling down

+0

有沒有實現這樣的事情的本機控件,您可能必須創建自己的自定義控件的這個實例。 –

回答

0

,我能想到的是使用一個HeaderedItemsControl非常簡單的解決方案後。這將允許您將頂部項目設置爲標題,將所有其他項目設置爲列表項目。

<Grid> 

     <HeaderedItemsControl> 
      <HeaderedItemsControl.Template> 
       <ControlTemplate TargetType="{x:Type HeaderedItemsControl}"> 
        <Border> 
         <Grid> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition Height="Auto" /> 
           <RowDefinition /> 
          </Grid.RowDefinitions> 
          <ContentPresenter ContentSource="Header" /> 
          <!--<Separator Grid.Row="1" />--> 
          <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Visible"> 
           <ItemsPresenter /> 
          </ScrollViewer> 
         </Grid> 
        </Border> 
       </ControlTemplate> 
      </HeaderedItemsControl.Template> 
      <HeaderedItemsControl.Header>Mark</HeaderedItemsControl.Header> 
      <HeaderedItemsControl.Items> 
       <system:String>Mark2</system:String> 
       <system:String>Mark3</system:String> 
       <system:String>Mark4</system:String> 
       <system:String>Mark5</system:String> 
       <system:String>Mark6</system:String> 
       <system:String>Mark7</system:String> 
       <system:String>Mark7</system:String> 
      </HeaderedItemsControl.Items> 
     </HeaderedItemsControl> 
    </Grid> 
相關問題