包含扩展程序控件的WPF列表框
我已经和wpf打了几个月的交道,取得了喜忧参半的成功,但这一次让我感到困惑。我有一个包含扩展器的列表框,如下所示:包含扩展程序控件的WPF列表框,wpf,xaml,listbox,expander,Wpf,Xaml,Listbox,Expander,我已经和wpf打了几个月的交道,取得了喜忧参半的成功,但这一次让我感到困惑。我有一个包含扩展器的列表框,如下所示: <ListBox> <Expander Header="Options"> <StackPanel> <CheckBox Content="Option 1" /> <CheckBox Content="Option 2" /> <CheckBox Cont
<ListBox>
<Expander Header="Options">
<StackPanel>
<CheckBox Content="Option 1" />
<CheckBox Content="Option 2" />
<CheckBox Content="Option 3" />
</StackPanel>
</Expander>
<Expander Header="More Options">
<StackPanel>
<CheckBox Content="Option 1" />
<CheckBox Content="Option 2" />
<CheckBox Content="Option 3" />
</StackPanel>
</Expander>
</ListBox>
我正在努力想办法:
第一个问题的答案很简单。只需将其添加到
列表框中即可。参考资料
:
<ListBox.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Black" />
</ListBox.Resources>
您可以自由地将颜色更改为您喜欢的任何颜色
你的第二个问题的解决方案远非简单。我想说的是,在列表框中声明控件远远不是最优的。更好的解决方案是创建一个数据类型类,将这些实例的集合绑定到ListBox.ItemsSource
属性,然后创建DataTemplate
s来定义每个项的外观。。。这就是您应该声明扩展器控件的位置
在StackOverflow,我们希望每个帖子都能问一个问题,请尝试我刚才的建议,如果需要,在线搜索相关术语,然后带着新问题回来,向我们展示您的新代码。对于B)请参见。对于A)使用背景颜色作为标题的控件,或者明确设置组合框的背景颜色。对于多个问题,我深表歉意。上面给出的xaml更改了扩展器的头和内容控制。我希望能够独立地改变它们。如果我不清楚,很抱歉。我提供的XAML只是删除了默认的蓝色选择颜色。如果您遵循我的建议,那么您可以将代码添加到DataTemplate
中,这将改变您喜欢的任何东西的颜色。。。第一步只是删除默认的蓝色选择矩形。一旦你到了那个阶段,再添加一个问题,我将向你展示如何。。。实际上,搜索“WPF SelectedItem background color”可能会更好,因为这已经被回答了很多次了。