我的 WP7 应用程序中有一个页面,由 ListPicker
旁边的 TextBox
组成。在默认模式下,它们无法正确排列; ListPicker
与 TextBox
的内边距不同,其高度也不同。
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Orientation="Horizontal">
<TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top"/>
<toolkit:ListPicker Width="170" ItemsSource="{Binding l}" Style="{StaticResource ListPickerStyle1}" VerticalAlignment="Top"/>
</StackPanel>
</Grid>
手动调整ListPicker
的模板以正确适应此处是很棘手且容易出错的。例如,当调整其高度时,标题(即所选项目的文本)不再位于组件的中心。
我的应用目前未通过 MS 应用审核,因为组件的高度并不相同。
有没有一种简单的方法可以将 toolkit:ListPicker
设置为与 TextBox
具有相同的外观?
最佳答案
最简单的解决方案是复制默认样式并使用 Blend 对其进行调整,使其达到您想要的外观。这需要进行一些尝试和错误才能解决。
然后,您可以使用隐式样式规则将其应用于所有 ListPicker
,而无需在每个实例上显式设置样式:
<Style x:Key="MyListPickerStyle
TargetType="toolkit:ListPicker>
.... your tweaks here
</Style>
<Style TargetType="toolkit:ListPicker"
BasedOn="{StaticResource MyListPickerStyle}" />
当然,调整 TextBox
样式可能会更容易:)
关于silverlight - 为什么 WP7 ListPicker 的边距和高度与 TextBox 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8892112/