我已对列表框项目进行了分组,我可以通过SelectionMode =“Extended”或“Multiple”选择“Multiple”项目。现在我在“排序”中有两个问题和另外一件事
[SelectionMode =“Extended”]
我可以通过按下并使用鼠标选择项目来选择多个项目,一旦我将鼠标移动到其他控件,我就会失去我的选择。
2.我无法使用键盘选择多个项目,无法使用箭头键前往listboxItems(即)“图像”。
我想对分组的项目进行排序/排列。 任何人都可以提前指导这些......。
<CollectionViewSource x:Key="CharacterCollectionView"
Source="{Binding}" >
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Name" />
</CollectionViewSource.GroupDescriptions>
<!--<CollectionViewSource.SortDescriptions>
<cm:SortDescription PropertyName="First" />
</CollectionViewSource.SortDescriptions>-->
</CollectionViewSource>
<ItemsPanelTemplate x:Key="HorizontalItemsPanel">
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Stretch" />
</ItemsPanelTemplate>
<Style x:Key="myListboxStyle">
<Style.Resources>
<!-- Background of selected item when focussed -->
<LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#66000000" Offset="0" />
<GradientStop Color="#33000000" Offset="1" />
</LinearGradientBrush>
<!-- Background of selected item when not focussed -->
<LinearGradientBrush x:Key="{x:Static SystemColors.ControlBrushKey}" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#66000000" Offset="0" />
<GradientStop Color="#33000000" Offset="1" />
</LinearGradientBrush>
</Style.Resources>
</Style>
</Window.Resources>
<DockPanel>
<StackPanel Orientation="Vertical" DockPanel.Dock="Left" Background="#336699" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<ListBox
Margin="20,20,20,5" DataContext="{Binding}"
ItemsSource="{Binding Source={StaticResource CharacterCollectionView}}"
DockPanel.Dock="Top" x:Name="MyList" MouseEnter="MyListEvent"
Width="700" SelectionMode="Extended" Style="{StaticResource myListboxStyle }"
Height="700" Background="LightGray" IsSynchronizedWithCurrentItem="True"
ScrollViewer.CanContentScroll="True" SelectedIndex="1"
ScrollViewer.VerticalScrollBarVisibility="Visible" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" PresentationTraceSources.TraceLevel="High" >
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="1"/>
<Setter Property="BorderBrush" Value="Green"/>
<Setter Property="Width" Value="{Binding Path=Value, ElementName=sizeSlider, Mode=TwoWay}"/>
<Setter Property="Height" Value="{Binding Path=Value, ElementName=sizeSlider, Mode=TwoWay}"/>
<!--<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>-->
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Background="LightSteelBlue" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Viewbox Stretch="Fill" HorizontalAlignment="Stretch" >
<Border BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" DataContext="{Binding}" BorderBrush="IndianRed" Margin="0" Height="Auto">
<DockPanel>
<Image
DockPanel.Dock="Top"
Width="150" Margin="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Height="Auto" x:Name="Myimage"
Source="{Binding Path=ImageFilepath[0]}"/>
<Grid>
<Label Content="{Binding Path=Name[0]}" HorizontalContentAlignment="Center" FontWeight="Normal" FontSize="13" />
</Grid>
</DockPanel>
</Border>
</Viewbox>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" FontSize="18" Height="Auto" Background="Transparent" FontWeight="Medium" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Background="White" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<GroupBox Header="{Binding Name}" BorderBrush="#336699" BorderThickness="2" Margin="5">
<ItemsPresenter />
</GroupBox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListBox.GroupStyle>
</ListBox>
<StackPanel Grid.Row="1" HorizontalAlignment="Center" Orientation="Horizontal" Margin="2,0,5,5">
<TextBlock Width="Auto" Text="Min" Foreground="White" FontWeight="Bold" FontSize="14" Margin="2" Padding="0" HorizontalAlignment="Right" />
<Slider
Name="sizeSlider"
Width="300" Orientation="Horizontal"
Value="200" Background="PowderBlue"
IsSnapToTickEnabled="True"
Minimum="150" Maximum="250"
TickPlacement="BottomRight"
TickFrequency="50"
AutoToolTipPrecision="10"
AutoToolTipPlacement="TopLeft"
IsDirectionReversed="False"
IsMoveToPointEnabled="False" />
<TextBlock Width="Auto" Text="{Binding Value, ElementName=sizeSlider}" Foreground="White" FontWeight="Bold" FontSize="14" Margin="2" Padding="0" />
</StackPanel>