2010-05-18 28 views
0

我有一個MainView,其中包含一個導航欄,用於選擇要在頁面查看窗格中顯示的多個XAML頁面之一。 MainView包含頁面周圍的ScrollViewer。這允許頁面的大小爲他們需要的大小,並且MainView的ScrollViewer會滾動它們。這一切都很好。將文本框居中置於WPF中的滾動查看器頂部

在其中一個頁面上,我需要(有時)將TextBox放置在頁面視圖窗格的中間(位於頁面內容的頂部)。這很容易通過將頁面內容和文本框相互重疊放置在一個表格中(並根據需要隱藏文本框)。這一切似乎都很好。

但是,如果頁面內容增長到大於窗格的大小,則TextBox不會集中在窗格上,而會集中在整個頁面內容上。因此,它從中心屏幕向下和/或向右移動(並最終離開屏幕)。遊民。

選項:

  1. 從的MainView取出的ScrollViewer。這需要在每個頁面上放置一個!哎呀。

  2. 做選項#1,並創建一個ScrolledPage基類。這是很多工作,我很擔心工具問題(混合問題)。它還需要更改每個頁面(將此頁面劃分子類)。

  3. 以某種方式覆蓋此頁面上的ScrollViewer。然後,在頁面內容上放置另一個ScrollViewer以將其滾動。

選項3似乎最好,因爲它包含的問題,只是修改此頁(而不是改變頁面的其餘部分)。但是,我無法弄清楚如何去做。想法?

在此先感謝!

埃裏克

+0

如果該文本框始終保持中心和頁面內容的頂部?如果是這樣,則使用dockpanel並相應地停靠頁面內容和文本框。或者使用網格來保持它們分離。 – ArchAngel 2016-06-10 11:33:39

回答

0

爲什麼不把那個文本框爲一個網格連同ScrollViewer中?

<Grid> 
    <TextBox 
    Text="{Binding Path=MyText}" 
    Visibility="{Binding SomeProperty}" 
    HorizontalAlignment="Center" 
    VerticalAlignment="Center" /> 
    <ScrollViewer /> 
</Grid> 

乾杯,亞歷克斯

相關問題