以下代码在无内容空白区域无法点击选中
因为border的Background默认null,为null时border区域不参与点击命中测试!
改成Background=Transparent或者让它不为null即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| <ItemsControl Grid.Row="1" Margin="20" ItemsSource="{Binding Items}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate> <DataTemplate> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="30"/> </Grid.ColumnDefinitions>
<Border x:Name="StepBorder" BorderBrush="#DDD" BorderThickness="1" CornerRadius="8" Cursor="Hand"> <Grid Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="40"/> <ColumnDefinition Width="120"/> </Grid.ColumnDefinitions> <Ellipse Width="40" Height="40" Fill="#bee6fd"/> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding StepNumber}"/>
<TextBlock Grid.Column="1" Width="100" Margin="5,0,0,0" VerticalAlignment="Center" Text="{Binding AlgorithmName}" TextWrapping="Wrap"/> </Grid> <Border.InputBindings> <MouseBinding Command="{Binding DataContext.SelectItemCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding .}" MouseAction="LeftClick"/>
<MouseBinding Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" MouseAction="LeftDoubleClick"/> </Border.InputBindings> </Border>
<iconPacks:PackIconMaterial Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center" Kind="ArrowRight">
<iconPacks:PackIconMaterial.Visibility> <MultiBinding Converter="{StaticResource StepNumberToArrowVisiblityConverter}"> <Binding Path="StepNumber"/> <Binding Path="DataContext.Items.Count" RelativeSource="{RelativeSource AncestorType=ItemsControl}"/> </MultiBinding> </iconPacks:PackIconMaterial.Visibility> </iconPacks:PackIconMaterial> </Grid>
<DataTemplate.Triggers> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition> <Condition.Binding> <MultiBinding Converter="{StaticResource IsSelectedItemConverter}"> <Binding Path="."/> <Binding Path="DataContext.SelectedItem" RelativeSource="{RelativeSource AncestorType=ItemsControl}"/> </MultiBinding> </Condition.Binding> <Condition.Value>True</Condition.Value> </Condition> </MultiDataTrigger.Conditions>
<Setter TargetName="StepBorder" Property="BorderBrush" Value="#3498db"/> <Setter TargetName="StepBorder" Property="Background" Value="#0078d7"/> </MultiDataTrigger> </DataTemplate.Triggers> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>
|