代码之家  ›  专栏  ›  技术社区  ›  Ciantic

使用SelectedIndex或导航键盘时,是否将ComboBox项设置为ComboBox的全宽?

  •  3
  • Ciantic  · 技术社区  · 17 年前

    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),并且用户使用键盘选择该项,则会发生相同的错误或功能。

    2 回复  |  直到 15 年前
        1
  •  8
  •   Sheridan    8 年前

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

    例如。

    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>
    
        2
  •  2
  •   codeB10    17 年前

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

    如果是后者,请尝试此操作,也可以删除突出显示的选择颜色,否则,就预选第一项而言,路线背后的代码可能是正确的,因为这可能是一个选项。

    全背景色示例:

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

    希望这有帮助!:)

    YourCodeFactory.com

    推荐文章