LongListMultiSelector对齐CENTER CheckBox列表项

时间:2014-05-13 08:55:55

标签: windows-phone-8 silverlight-toolkit longlistselector

我有一个包含列表项的LongListMultiSelector。

这是XAML代码


<myclass:LongListMultiSelector x:Name="lstAudio" 
    HideEmptyGroups="True"
    VerticalContentAlignment="Center"   
    ItemsSource="{Binding Audio}" 
    LayoutMode="List"  
    SelectedItems="{Binding SelectedAudioRegistrations, Mode=TwoWay}"
    IsSelectionEnabled="{Binding LongListMultiSelector_IsSelectionEnabled}"> 
    <myclass:LongListMultiSelector.ItemTemplate>
        <DataTemplate>
            <Grid cal:Message.Attach="[Event Tap] = [Action OnSelectionChangedCommand($dataContext)]" Margin="-35,0,0,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="76"/>
                    <RowDefinition Height="15"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="76" />
                    <ColumnDefinition Width="280" />
                    <ColumnDefinition Width="120" />
                </Grid.ColumnDefinitions>
                <Image Source="/icon/image76.png" Width="76" Height="76" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" />
                <TextBlock Text="{Binding Name}" Grid.Column="1" Grid.Row="0" TextWrapping="Wrap" VerticalAlignment="Center"  />
                <TextBlock Text="{Binding Duration, Converter={StaticResource SecondsToTimeConverter}}" Grid.Column="2" Grid.Row="0" TextWrapping="Wrap" VerticalAlignment="Center" />

            </Grid>
        </DataTemplate>
    </myclass:LongListMultiSelector.ItemTemplate>
</myclass:LongListMultiSelector>

如果我启用&#34; IsSelectionEnabled&#34;它显示复选框但不显示垂直对齐

这是一张图片

enter image description here

我想在CENTER上对齐复选框。怎么样? 谢谢

1 个答案:

答案 0 :(得分:4)

我想我可以帮助你:) 这是 LongListMultiSelectorItem 的样式我可以移动复选框和背景颜色。所以我想现在你可以使用它的margin属性并相应地设置它。


<Style x:Key="LongListMultiSelectorItemListStyle" TargetType="toolkit:LongListMultiSelectorItem">
    <Setter Property="Background" Value="{StaticResource PhoneAccentBrush}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="toolkit:LongListMultiSelectorItem">
                <Grid MinHeight="52">
                    <Grid.Resources>
                        <ExponentialEase EasingMode="EaseIn" Exponent="8" x:Key="ExponentialEaseIn"/>
                        <QuadraticEase EasingMode="EaseOut" x:Key="QuadraticEaseOut"/>
                    </Grid.Resources>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="SelectionEnabledStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition x:Name="ClosedToExposed" 
                                        From="Closed" To="Exposed"
                                        GeneratedDuration="0:0:0.30">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                Storyboard.TargetName="OuterHintPanel">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition x:Name="ExposedToClosed" 
                                        From="Exposed" To="Closed"
                                        GeneratedDuration="0:0:0.30">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                Storyboard.TargetName="OuterHintPanel">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition x:Name="ExposedToOpened"
                                        From="Exposed" To="Opened"
                                        GeneratedDuration="0:0:0.30">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="SelectBox">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="Presenter">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                Storyboard.TargetName="OuterHintPanel">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                Storyboard.TargetName="SelectBox">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="Visible"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                Storyboard.TargetName="OuterHintPanel">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                Storyboard.TargetName="InnerHintPanel">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition x:Name="ClosedToOpened"
                                        From="Closed" To="Opened"
                                        GeneratedDuration="0:0:0.15">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="SelectBox">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="Presenter">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                Storyboard.TargetName="SelectBox">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="Visible"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                Storyboard.TargetName="OuterHintPanel">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                Storyboard.TargetName="InnerHintPanel">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition x:Name="OpenedToClosed"
                                        From="Opened" To="Closed"
                                        GeneratedDuration="0:0:0.15">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="SelectBox">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                Storyboard.TargetName="Presenter">
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                Storyboard.TargetName="SelectBox">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0.15" Value="Collapsed"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Closed"/>
                            <VisualState x:Name="Exposed">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" 
                                            Storyboard.TargetName="OuterHintPanel"
                                            Duration="0" To="1.0"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Opened">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                            Storyboard.TargetName="SelectBox"
                                            Duration="0" To="0"/>
                                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                            Storyboard.TargetName="Presenter"
                                            Duration="0" To="86"/>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                            Storyboard.TargetName="SelectBox">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                            Storyboard.TargetName="OuterCover">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" 
                                            Storyboard.TargetName="OuterHintPanel"
                                            Duration="0" To="0.0"/>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                            Storyboard.TargetName="OuterHintPanel">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                            Storyboard.TargetName="InnerHintPanel">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid HorizontalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0" HorizontalAlignment="Stretch" toolkitPrimitives:ClipToBounds.IsEnabled="True">
                            <ContentPresenter x:Name="Presenter">
                                <ContentPresenter.RenderTransform>
                                    <CompositeTransform TranslateX="24"/>
                                </ContentPresenter.RenderTransform>
                            </ContentPresenter>
                        </Grid>
                        <Rectangle x:Name="InnerHintPanel" Grid.Column="0" Width="24"
                                Height="{TemplateBinding HintPanelHeight}"
                                HorizontalAlignment="Left"
                                Fill="Transparent"
                                StrokeThickness="0">
                            <Rectangle.RenderTransform>
                                <CompositeTransform TranslateX="24"/>
                            </Rectangle.RenderTransform>
                        </Rectangle>
                        <ContentControl x:Name="InfoPresenter" Grid.Column="1" 
                                VerticalAlignment="Top"
                                Content="{TemplateBinding ContentInfo}"
                                ContentTemplate="{TemplateBinding ContentInfoTemplate}"/>
                    </Grid>
                    <Rectangle x:Name="OuterHintPanel" Width="24"
                            HorizontalAlignment="Left"
                            Height="{TemplateBinding HintPanelHeight}"
                            Fill="{TemplateBinding Background}"
                            StrokeThickness="0" Opacity="0.0"/>
                    <Grid x:Name="OuterCover" IsHitTestVisible="True"
                            Visibility="Collapsed" Background="Transparent"/>
                    <Canvas HorizontalAlignment="Left">
                        <CheckBox x:Name="SelectBox" VerticalAlignment="Bottom"  Visibility="Collapsed" Background="Green"
                                IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">
                            <CheckBox.RenderTransform>
                                <CompositeTransform TranslateX="-58"/>
                            </CheckBox.RenderTransform>
                        </CheckBox>
                    </Canvas>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

现在设置为LongListMultiSelector: -

<toolkit:LongListMultiSelector x:Name="PhotoHubLLS" Height="435" VerticalAlignment="Top"
    IsGroupingEnabled="False"
    GridCellSize="106,106"
    LayoutMode="List"
    ItemTemplate="{StaticResource ItemTemplate}"
    HideEmptyGroups="False"
    IsSelectionEnabled="True" ItemContainerStyle="{StaticResource LongListMultiSelectorItemListStyle}" >
</toolkit:LongListMultiSelector>

希望它可以帮助你:)任何查询只是评论。