
2. 下拉框正常绑定数据就行,如果像上图每个Item都有个删除功能,那就需要重写样式,可参考下面的代码(带有动画效果,可删除)
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="SnapsToDevicePixels"
Value="true"/>
<Setter
Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter
Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding"
Value="3"/>
<Setter Property="Focusable"
Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type ComboBoxItem}">
<Grid SnapsToDevicePixels="true" FocusVisualStyle="{x:Null}">
<Rectangle x:Name="BackgroundHighlight" FocusVisualStyle="{x:Null}"
Margin="-1" Stroke="#A0FFFFFF"/>
<ContentPresenter
Content="{Binding LoginName}" FocusVisualStyle="{x:Null}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
x:Name="contentPresenter" Margin="{TemplateBinding Padding}"/>
<Button Width="30"
Height="30" HorizontalAlignment="Right" Tag="{Binding LoginName}"
Style="{StaticResource CloseButton}" Click="BtnDeleteRecord_Click"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger
Property="IsMouseOver" Value="True">
<Trigger.ExitActions>
<BeginStoryboard
Storyboard="{StaticResource HoverOff}"
x:Name="HoverOff_BeginStoryboard"/>
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard
Storyboard="{StaticResource HoverOn}"
x:Name="HoverOn_BeginStoryboard"/>
</Trigger.EnterActions>
</Trigger>
<Trigger
Property="IsHighlighted" Value="true"/>
<Trigger
Property="Selector.IsSelected" Value="True">
<Trigger.ExitActions>
<BeginStoryboard
Storyboard="{StaticResource SelectedOff}"
x:Name="SelectedOff_BeginStoryboard1"/>
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard
Storyboard="{StaticResource SelectedOn}"
x:Name="SelectedOn_BeginStoryboard1"/>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
写combobox的comboboxitem的样式就可以了<ComboBox>
<ComboBox.Resources>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding 产品编码}"></TextBlock>
<TextBlock Text="{Binding 产品名称}"></TextBlock>
<TextBlock Text="{Binding 产品价格}"></TextBlock>
<TextBlock Text="{Binding 产品等级}"></TextBlock>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.Resources>
</ComboBox>
后台绑定combobox的itemsource就可以。
什么控件都可以实现,只要重写样式就行了,放一个popup控件,如果你要鼠标放上去就马上出来,就重写tooltip,这些都是非常简单的事情。wpf是超灵活的桌面布局应用,只要重写样式,随便怎么整都可以。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)