LongListMultiSelector Выравнивание элемента списка CENTER CheckBox

У меня есть 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>

Если я включил «IsSelectionEnabled», он показывает флажок, но не выравнивает по вертикали

это изображение

введите здесь описание изображения

Я хотел бы выровнять флажок по ЦЕНТРУ. Как? Спасибо


person John Brush    schedule 13.05.2014    source источник
comment
Если этот флажок присутствует в стиле longlistmultiselector по умолчанию, то вы отредактировали его стиль.   -  person loop    schedule 13.05.2014
comment
Как? я открываю с помощью blend, но если я редактирую флажок, он не работает   -  person John Brush    schedule 13.05.2014
comment
попробуйте установить для него какой-то запас, а затем проверьте его. Мне очень жаль, что сейчас я не на своем компьютере :( . так должно работать.   -  person loop    schedule 13.05.2014
comment
это пример проекта. app.box.com/s/984102hcn195rqc919dh как это сделать? Спасибо   -  person John Brush    schedule 15.05.2014
comment
Я использую телерик RadDataBound. :(   -  person John Brush    schedule 22.05.2014
comment
Это означает, что ваша проблема решена. тогда здорово :)   -  person loop    schedule 22.05.2014


Ответы (1)


Думаю, я могу вам помочь :)
Вот стиль 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>

надеюсь, это поможет вам :) любой запрос просто прокомментируйте.

person loop    schedule 15.05.2014