考虑以下XAML代码:
<StackPanel>
<ListBox x:Name="lbColor">
<ListBoxItem Content="Blue"/>
<ListBoxItem Content="Green"/>
<ListBoxItem Content="Yellow"/>
</ListBox>
<TextBlock>
<TextBlock.Text>
<Binding ElementName="lbColor" Path="SelectedItem.Content"/>
</TextBlock.Text>
<TextBlock.Background>
<Binding ElementName="lbColor" Path="SelectedItem.Content"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
我了解文本属性绑定的工作原理。在内部,它被转换为:
textBlock.Text = lbColor.SelectedItem.Content;
但是背景如何绑定到同一个源呢?此代码:
textBlock.Background = lbColor.SelectedItem.Content;
是不正确的。它如何工作?顺便说一句,它工作并显示正确的背景色。
我看到的唯一方法是获取具有给定名称的System.Windows.Media.Colors属性,从中创建solidColorBrush并分配给background属性。但是代码中没有指向这条路径的内容。