首先关闭所有人:抱歉英语不好,我通常说德语。
目前我正在开展一个大型项目,我必须填写一个列表框,我将其用作“导航控件”,并使用字典中的字符串。
在这个项目的旧版本中,我手动将字符串放在列表框中,然后我可以将列表框的前景从黑色设置为白色,但在当前版本中不再可能。
<StackPanel Grid.Column="0" Orientation="Vertical">
<TextBlock Text=" Navigation" FontSize="16" Margin="10" Foreground="White"/>
<ListBox HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Left"
Margin="10"
MaxHeight="150"
BorderBrush="Black"
Style="{DynamicResource MetroListBox}"
SelectedItem="{Binding SelectedTemplate}" Background="#002B2B2B"
ItemsSource="{x:Static models:TemplateRepository.TemplateDictionary}"
Foreground="White"
DisplayMemberPath="Value">
</ListBox>
</StackPanel>
有人可以向我解释为什么这不起作用吗?
答案 0 :(得分:0)
如果没有更多信息,例如ListBox
项目的模板是什么,很难猜到?
例如,您可以在参考资料中使用以下模板:
<DataTemplate DataType="{x:Type local:SomeClass}">
<Grid DataContext="{Binding}">
<TextBlock Text="{Binding Path=Name}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=ListBox}}" />
</Grid>
</DataTemplate>
在这种情况下,将Foreground
设置为某个值会影响项目,例如:
<ListBox x:Name="listBox" ItemsSource="{Binding}" Foreground="Red">
另一方面,如果Items的Foreground
在datatemplate中设置为某个固定值,那么在ListBox中设置它将无效。