我有一个LongListMultiSelector,其列表项目的字体大小更大。由于这种字体更改,我意识到复选框始终与实际列表项不一致。我尝试在每个级别更改水平和垂直对齐,并调整填充和边距值。这些更改了列表项中的文本块,但复选框保持根到顶部,并且它给列表提供了扭曲的外观。
是否有将复选框垂直居中或管理其填充?我意识到recent post关于列表样式的边距,但它似乎相当复杂,没有任何直接输入我的问题。
答案 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>