0
我尝试自定义组合框时出现问题。它在UserControl中,并且我希望它的BorderBrush属性在鼠标移过时从透明变为白色(淡入/淡出将成为奖金)。组合框突出显示
但我似乎无法得到适当的触发语法来做到这一点...现在我感到困惑,我可能会错过这里明显的东西。
这里是有问题的组合框:
<ComboBox x:Name="comboEmiCategories" ItemsSource="{Binding}" Background="Transparent" Height="15px" Width="30px" BorderBrush="Transparent" Padding="-2">
<ComboBox.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</sys:Double>
</ComboBox.Resources>
<ComboBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Stretch="UniformToFill" Height="15px" Width="30px" Margin="0" />
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.Template>
<ControlTemplate>
<ControlTemplate.Triggers>
<Trigger Property="ComboBox.IsMouseOver" Value="True">
<Setter Property="ComboBox.BorderBrush" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ComboBox.Template>
</ComboBox>
触发不工作,更有甚者竟,如果我不注释掉整个ComboBox.Template部分,控制消失。
主要目标是让一个ComboBox堆叠图像,并允许用户从列表中选择一个,除了显示的图像外没有别的。
谢谢。
编辑: 马里奥的解决方案把它放在一个风格的作品,但它是唯一的方法来做到这一点?
我尝试过之前的样式,但它试过你的。我把它放在我的App.xaml中,ComboBox抛出一个错误:无法找到资源“cbStyle”,所以我试图把样式放在UserControl中,甚至在持有ComboBox的Grid中也是如此。 看来我错过了关于UserControls的一个关键信息... –
好吧,现在我删除了Style =“{StaticResource cbStyle}”,它使用了样式...即使我没有指定使用它,它是一个有名的资源。我认为隐式样式需要是无名的oO –
它不是x:Name,它是x:Key ... lol –