【问题标题】:ComboBoxItem to full width of ComboBox, when using SelectedIndex, or navigating keyboard?使用 SelectedIndex 或导航键盘时,ComboBoxItem 到 ComboBox 的全宽?
【发布时间】:2009-10-17 19:03:01
【问题描述】:

遵循 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>

问题是,即使使用SelectedIndex 选择ComboBoxItem,是否也可以拉伸它?如果未触及 SelectedIndex (-1) 并且使用键盘选择项目,则会发生相同的错误或功能。

解决方法可能是在应用程序的开头以编程方式打开ComboBox,这很丑陋。

【问题讨论】:

    标签: wpf xaml combobox selectedindex


    【解决方案1】:

    您只需将边框的宽度设置为外部控件的动态宽度:

    例如

    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>
    

    【讨论】:

    • 如果使用Windows的Chrome主题将实际宽度应用于ComboBoxItem(但只有几个像素),它也太宽了。
    • 找不到更精确的解决方案,选择这个。
    • 我认为你不需要在 ComboBoxItem 上设置 Horizo​​ntalContentAlignment
    【解决方案2】:

    我明白了——我确信有办法解决这个问题。这实际上取决于您想要的最终结果。您的每个数据项是否具有不同的背景颜色来识别它们,或者它只是您尝试实现的整个组合框的背景颜色。

    如果是后者,试试这个 - 并且也许也删除突出显示的选择颜色,否则路线后面的代码可能是正确的,就预先选择您的第一个项目而言,因为这可能是一个选项。

    全部背景颜色示例:

        <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>
    

    希望这会有所帮助! :)

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2012-10-14
      • 2013-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多