2010-05-18 34 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> 

干杯,亚历克斯