我正在使用Windows Phone Toolkit中的ListPicker。这是非常基本的设置,但由于某些原因,弹出窗口中的项目总是被它们下面的任何东西所遮挡,例如:

在这里,文本“jburchel”位于ListPicker的下面,而_http://science.nasa.gov/me是一个ListPickerItem。您可以看到下面的文本框是如何正常显示的,但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" />发布于 2011-04-11 14:30:09
问题似乎在于(尽管没有更多的XAML就不能确定),您正在使用 more 来布局控件来定位元素。正如您刚刚发现的,这不一定是最好的方法。Silverlight有广泛的布局容器,可以帮助你布局控件,而不需要你手动定位每个元素。
在这种情况下,您可能会将垂直堆叠的控件放置在彼此之上,为此,您可以使用StackPanel容器。您只需将每个子元素添加到StackPanel中,它就会处理它们在彼此之上的布局。一旦你这样做了,因为下一个元素总是在ListPicker之下,当ListPicker展开时,它下面的元素就会被下推。
对于更复杂的布局,您可以使用Grid容器(几乎可以肯定,它是控件的当前父容器),但是您应该使用行和列来确保元素不会相互“渗入”。注意:Grid元素的灵活性是有代价的,你应该仔细考虑是否需要使用它,或者是否可以使用更简单的容器,例如,对于列表中的重复容器。
如果您是Silverlight中的布局系统的新手,您可能会发现这个资源特别有用:http://msdn.microsoft.com/en-us/library/cc645025(VS.95).aspx
发布于 2011-04-09 17:57:03
看起来你的列表选择器有一个透明的背景。
发布于 2011-07-17 18:18:58
我也有同样的问题,然后我就把它弄明白了。在xaml文件中定义元素的顺序很重要。最先出现的对象将首先呈现,因此将位于其余对象的下面。在您的情况下,这应该可以解决问题:
https://stackoverflow.com/questions/5602771
复制相似问题