WPF用listbox控件如何实现下记效果:
选中的Item高亮的同时,附带的button会显示出来。
不是太好表达,看图吧。

如最新的qq里的功能一样,选中某个条目,该条目相应的button(图中红色箭头指向的按钮)也会显示出来。
而且貌似这个按钮是跟高亮框是一体的,而不是属于item。
我是菜鸟,初学wpf,还望各位达人指点。
非常感谢
wpf listbox highlightbutton
------解决方案--------------------------------------------------------
在ListBoxItme模板中默认将Button隐藏起来,然后设置触发器,在Item选中后再显示出来就可以了。如:
<Trigger Property="IsSelected" Value="true">
<Setter Property="Visility" Value="Visible" TargetName="buttonName"/>
</Trigger>
------解决方案--------------------------------------------------------
<Style x:Key="ListBoxItemStyle1" TargetType="{x:Type ListBoxItem}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Padding" Value="4,1"/>
<Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="115*"/>
<ColumnDefinition Width="38*"/>
</Grid.ColumnDefinitions>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,2"/>
<Button x:Name="button" Content="Button" HorizontalAlignment="Right" VerticalAlignment="Top" Grid.Column="1" Visibility="Hidden"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="{StaticResource Item.MouseOver.Background}"/>
<Setter Property="BorderBrush" TargetName="Bd" Value="{StaticResource Item.MouseOver.Border}"/>
<Setter Property="Visibility" TargetName="button" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>