以下XAML导致“我的内容”以ComboBox
为中心,直到我打开ComboBox
,当它正确伸展时。
<ComboBox Height="30" Width="300" HorizontalContentAlignment="Stretch" SelectedIndex="0">
<ComboBoxItem HorizontalContentAlignment="Stretch">
<Border Background="Red">
<TextBlock>My stuff...</TextBlock>
</Border>
</ComboBoxItem>
</ComboBox>
问题是,即使使用ComboBoxItem
选择SelectedIndex
,它是否可能被拉伸?如果SelectedIndex未触及(-1)并且使用键盘选择项目,则会发生相同的错误或功能。
解决方法可能是在应用程序的开头以编程方式打开ComboBox,这非常难看。
答案 0 :(得分:6)
您只需将边框的宽度设置为外部控件的动态宽度:
E.g。
Width="{Binding ElementName=combox1, Path=ActualWidth}">
试试这个:
<ComboBox x:Name="combox1" Height="30" Width="300" HorizontalContentAlignment="Stretch"
SelectedIndex="0">
<ComboBoxItem HorizontalContentAlignment="Stretch">
<Border Background="Red" Width="{Binding ElementName=combox1, Path=ActualWidth}">
<TextBlock>My stuff...</TextBlock>
</Border>
</ComboBoxItem>
</ComboBox>
答案 1 :(得分:1)
我明白了 - 我相信这有一个方法。这真的取决于你想要的最终结果。您的每个数据项都有不同的背景颜色来识别它们,或者它只是您尝试实现的整个组合框的背景颜色。
如果是后者,请尝试这一点 - 也许也可以删除突出显示的选择颜色,否则也许路线后面的代码是正确的,就预选第一个项目而言,因为这可能是一个选项。
全部背景颜色示例:
<ComboBox Background="Red" x:Name="combox2" Height="30" HorizontalContentAlignment="Stretch" SelectedIndex="0">
<ComboBoxItem Background="Red" HorizontalContentAlignment="Stretch">
<TextBlock Background="Red">My stuff...</TextBlock>
</ComboBoxItem>
</ComboBox>
希望这有帮助! :)