0

我有一个包含导航栏的 MainView,该导航栏选择要在页面视图窗格中显示的许多 XAML 页面之一。MainView 包含页面周围的 ScrollViewer。这允许页面是它们需要的任何大小,并且 MainView 的 ScrollViewer 滚动它们。这一切都很好。

在其中一个页面上,我需要(有时)将一个 TextBox 居中在页面视图窗格的中间(在页面内容的顶部)。这很容易通过将页面内容和 TextBox 放在一个网格中相互重叠来完成(并且我根据需要隐藏了 TextBox)。这一切似乎都很好。

但是,如果页面内容变得比窗格大,则 TextBox 不会以窗格为中心,而是以整页内容为中心。因此,它从中心屏幕向下和/或向右移动(最终离开屏幕)。真可惜。

选项:

  1. 从 MainView 中删除 ScrollViewer。这将需要在每一页上放置一个!啊。

  2. 执行选项 #1,并创建一个 ScrolledPage 基类。这是很多工作,我担心工具问题(混合问题)。它还需要更改每个页面(以子类化此页面)。

  3. 以某种方式仅在此页面上覆盖 ScrollViewer。然后,在页面内容上放置另一个 ScrollViewer 以滚动它。

选项 3 似乎更可取,因为它包含仅修改此页面(而不是更改其余页面)的问题。但是,我不知道该怎么做。想法?

提前致谢!

埃里克

4

1 回答 1

0

为什么不将该 TextBox 与 ScrollViewer 一起放入 Grid 中呢?

喜欢

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

干杯,亚历克斯

于 2010-05-19T21:05:04.927 回答