目前我有这个视觉效果:
我希望悬停效果与我的边框相匹配,并且项目之间有空格。
<ListBox Grid.Column="1" Grid.Row="0" Margin="5,0,0,0" Grid.RowSpan="2" ItemsSource="{Binding Programme.Versions, UpdateSourceTrigger=PropertyChanged}" MouseLeftButtonUp="ChangerVersion_MouseLeftButtonUp" Style="{StaticResource NoBorder}">
<!--<ListBox.ItemsPanel>
<ItemsPanelTemplate >
<WrapPanel IsItemsHost="True" Orientation="Vertical" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel> -->
<ListBox.ItemContainerStyle >
<Style TargetType="ListBoxItem">
<!--<Setter Property="Margin" Value="0,0,0,2"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>-->
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate DataType="bOs:VersionBO" >
<Border Padding="0" BorderThickness="1" BorderBrush="{DynamicResource Accent}" >
<Grid Cursor="Hand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Rectangle Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Fill="{DynamicResource Accent}" />
<TextBlock Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Background="{DynamicResource Accent}" Foreground="White" Margin="5" FontSize="18">
<TextBlock.Text>
<MultiBinding StringFormat="{}V{0}.{1}">
<Binding Path="Numero" />
<Binding Path="NumeroModification" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Text="{Binding Description}" Grid.Column="2" Grid.Row="0" />
<Image Grid.Column="2" Grid.Row="0" Width="20" Margin="0,2,2,0" Visibility="{Binding Interdit, Converter={StaticResource BooleanToVisibilityConverter}}" Source="../Images/Icones/interdit.png" HorizontalAlignment="Right" />
<TextBlock Grid.Column="2" Grid.Row="1">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MultiValuesWithSeparatorConverter}">
<Binding Path="Langue.Libelle" />
<Binding Path="SousTitre" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当我重新定义ItemContainerStyle
时,我失去了悬停效果。
答案 0 :(得分:0)
您使用的是某些自定义主题吗?如果是这样,应用程序中的某处应该有一个默认的ListBoxItemStyle
资源。
然后你的解决方案很简单:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource ListBoxItemStyle}">
<Setter Property="Margin" Value="0,0,0,2"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
</Style>
</ListBox.ItemContainerStyle>
如果没有,获取默认样式会稍微困难一些。我建议使用Blend。在那里,您可以右键单击设计器中的列表框,然后选择编辑模板:请记住首先从列表框中删除ItemContainerStyle 。
这将创建一个新的静态资源,您可以在其中建立模板。