Windows phone 7 Windows Phone 7上的ListPicker文本被其他文本遮挡

Windows phone 7 Windows Phone 7上的ListPicker文本被其他文本遮挡,windows-phone-7,toolkit,Windows Phone 7,Toolkit,我正在使用Windows Phone工具包中的ListPicker。基本上是这样设置的,但出于某种原因,弹出窗口中的项目总是被其下方的任何内容遮挡,如: 这里,文本“jburchel”位于ListPicker下面,并且_http://science.nasa.gov/me 这是一个很好的例子。您可以看到基本文本框的正常显示方式,但ListPickerItem在下面。我尝试在ListPicker和TextBlock的XAML上更改顺序,但没有任何帮助。我尝试了很多设置组合,把模板弄得乱七八糟,

我正在使用Windows Phone工具包中的ListPicker。基本上是这样设置的,但出于某种原因,弹出窗口中的项目总是被其下方的任何内容遮挡,如:

这里,文本“jburchel”位于ListPicker下面,并且_http://science.nasa.gov/me 这是一个很好的例子。您可以看到基本文本框的正常显示方式,但ListPickerItem在下面。我尝试在ListPicker和TextBlock的XAML上更改顺序,但没有任何帮助。我尝试了很多设置组合,把模板弄得乱七八糟,但这种情况一直存在。有人知道这个问题吗

下面是我使用的ListPicker XAML的一个示例。这是非常基本的

           <toolkit:ListPicker HorizontalAlignment="Left" Margin="24,41,0,0" Name="txtUrl" 
                  VerticalAlignment="Top" Width="434" Cursor="IBeam">
            <toolkit:ListPickerItem Content="http://rss.cnn.com/services/podcasting/studentnews/rss"/>
            <toolkit:ListPickerItem Content="http://science.nasa.gov/media/medialibrary/2010/10/28/podcast.xml"/>
            <toolkit:ListPickerItem Content="http://www.sciencemag.org/rss/podcast.xml"/>
        </toolkit:ListPicker>
        <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,19,0,0" Name="textBlock1" Text="Podcast URL:" VerticalAlignment="Top" />
        <TextBox Height="72" HorizontalAlignment="Left" Margin="15,141,0,0" Name="txtUser" Text="jburchel" VerticalAlignment="Top" Width="460" />

看起来您的列表选择器有一个透明的背景。

问题似乎是(尽管不能肯定没有更多XAML),您正在使用边距来放置元素。正如你刚刚发现的,这不一定是最好的方法。Silverlight有多种布局容器,可以帮助您布局控件,而无需手动定位每个元素

在本例中,您可能将控件垂直堆叠放置在彼此上方,可以使用
StackPanel
容器。只需将每个子元素添加到
StackPanel
,它就可以将它们放在彼此的顶部进行布局。完成此操作后,由于下一个元素始终位于
列表选择器
的下方,因此当
列表选择器
展开时,其下方的元素将被向下推

对于更复杂的布局,您可以使用
网格
容器(几乎可以肯定它是控件的当前父容器),但您应该使用行和列来确保元素不会相互“渗透”。注意:<代码>网格元素的灵活性是有代价的,你应该仔细考虑是否需要使用它,或者是否可以使用更简单的容器,特别是对于列表中的重复容器,例如:


如果您不熟悉Silverlight中的布局系统,您可能会发现此资源特别有用:

我遇到了同样的问题,刚刚解决了。重要的是您在xaml文件中定义元素的顺序。首先出现的一个将首先渲染,因此将位于其余的下面。在您的情况下,这应该可以解决问题:


列表选择器和以下控件应位于堆栈面板中:

<StackPanel Margin="0,144,0,51" DataContext="{Binding}">
   <toolkit:ListPicker Margin="10,0" Header="Service Executive" SelectedIndex="0">
      <ListBoxItem Content="Eva" Height="34" Width="444"/>
      <ListBoxItem Content="Ramon"/>
      <ListBoxItem Content="Santi"/>
      <ListBoxItem Content="David"/>
      <ListBoxItem Content="Alberto"/>
      <ListBoxItem Content="Jaime"/>
      <ListBoxItem Content="Jacinto"/>
   </toolkit:ListPicker>

我也遇到了同样的问题,您可以将ZIndex更改为更高的值(ZIndex越高,前面的控件越多)。我把它改成100

混合中

xaml中

<toolkit:ListPicker
    Canvas.ZIndex="100" />


通过这种方式,您可以在xaml中保留项目顺序,而不会混淆项目

感谢您的回复。我认为这几乎就是我需要的答案,但是现在,尽管原始行为不再发生,ListPicker的扩展迫使它下面的所有元素都下降。我希望有一个很好的分层效果,用户界面弹出,只覆盖它下面的元素。也许我对手机用户界面的期望太高了?或者有什么简单的方法可以做到这一点吗?如果您希望
列表选择器
像组合框一样出现在页面中的其他项目上,那么您需要确保为Background属性设置不透明的颜色。您的屏幕截图显示白色背景,因此您可能正在使用设备主题,在这种情况下,您应该使用
background=“{StaticResource PhoneBackgroundBrush}”
。谢谢。但我的背景并不透明。事实上,显示为透明的项目是选择器后面的项目,而选择器似乎位于其下方。。。不过,我会更多地使用这些设置,如果结果确实相关,我也会投你的一票作为答案。再次感谢。:)将图元复制并粘贴到。