LongListMultiSelector将CheckBox与列表项对齐

时间:2013-02-25 20:33:59

标签: windows-phone-8 silverlight-toolkit

我有一个LongListMultiSelector,其列表项目的字体大小更大。由于这种字体更改,我意识到复选框始终与实际列表项不一致。我尝试在每个级别更改水平和垂直对齐,并调整填充和边距值。这些更改了列表项中的文本块,但复选框保持根到顶部,并且它给列表提供了扭曲的外观。

是否有将复选框垂直居中或管理其填充?我意识到recent post关于列表样式的边距,但它似乎相当复杂,没有任何直接输入我的问题。

2 个答案:

答案 0 :(得分:3)

我找到了解决方案。您可以在datatemplate中更改网格的边距,如此Margin =“0,-15,0,22” - 在我的情况下,复选框的上边缘将平行于文本的上边缘。

希望它会对你有所帮助。

<toolkit:LongListMultiSelector x:Name="SelectedPlayListLLS" ItemsSource="{Binding PlayListTracsObservationCollection}" LayoutMode="List" toolkit:TiltEffect.IsTiltEnabled="True">               <toolkit:LongListMultiSelector.ItemTemplate>
<DataTemplate>
<Grid Background="Transparent" Margin="0,-15,0,22">
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="36" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image  x:Name="image" 
            Width="36" 
            Height="36" 
            Source="{Binding Image}" VerticalAlignment="Top" Margin="0,15,0,0"/>
    <StackPanel Grid.Column="1">
        <TextBlock Text="{Binding Title}" 
            TextTrimming="WordEllipsis"
            Margin="12,0,0,0"/>
        <TextBlock Text="{Binding Name}"  
            TextTrimming="WordEllipsis" 
            Margin="12,0,0,0" Foreground="#99FFFFFF"/>
    </StackPanel>
    </Grid>
</DataTemplate>
</toolkit:LongListMultiSelector.ItemTemplate>   
</toolkit:LongListMultiSelector>

答案 1 :(得分:0)

您可以随时尝试将复选框和文本块放在StackPanel中。从那时起,您可以调整复选框的对齐方式。

尝试这样的事情:

<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
       <CheckBox VerticalAlignment="Top" IsChecked="{Binding Selected}" />
       <TextBlock Text="{Binding DisplayName}" FontSize="40"/>
</StackPanel>