silverlight - 为什么 WP7 ListPicker 的边距和高度与 TextBox 不同

标签 silverlight windows-phone-7 listpicker

我的 WP7 应用程序中有一个页面,由 ListPicker 旁边的 TextBox 组成。在默认模式下,它们无法正确排列; ListPickerTextBox 的内边距不同,其高度也不同。

Image to show ListPicker problem

<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/

相关文章:

silverlight - Mvvm Silverlight,使用绑定(bind)到 SilverLight DataGrid 中的编程样式行

c# - WP7 自定义命名空间和前缀

windows-phone-7 - MvvmCross vnext : CheckBox CheckedChange event to a command with monodroid

windows-phone-7 - ListPicker - 如何在全页 View 打开时显示当前选择

c# - 没有选定项目的列表选择器

c# - 如何在 ASP.Net 中加密文件并在 Silverlight 中解密?

ruby-on-rails - 使用 Silverlight 和 Ruby on Rails 构建社交网站有意义吗?

c# - C# Windows Phone XNA 应用程序中的可选参数

c# - 签署 WP7 项目的强名?

c# - WP8 Listpicker 不要进入完整模式