2009-10-17 3 views
3

다음 XAML은 ComboBox까지까지 "내 물건"이 정확히 뻗어있을 때 ComboBox을 엽니 다.ComboBox SelectedIndex를 사용하거나 키보드를 탐색 할 때 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를 프로그램 시작 부분에서 프로그래밍 방식으로 여는 것이 좋습니다. 다소 엉망입니다.

일예 :

답변

6

당신은 당신의 outercontrol의 동적 폭으로 테두리 폭을 설정해야

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

지금 열린 (사용하는 마우스) 드롭 다운은 actualwidth이 윈도우의 크롬 테마를 사용하여 ComboBoxItem (하지만 몇 픽셀)에 적용되는 경우가 너무 넓어도의 ... 흠, – Ciantic

+0

너무 넓습니다. – Ciantic

+0

더 정확한 해결책을 찾을 수 없습니다. 이것을 선택하십시오. – Ciantic

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> 

희망! :)

YourCodeFactory.com