2009-11-09 9 views
1

흰색 배경의 해군 배경이있는 ComboBox의 스타일을 고치려고합니다. 따라서 드롭 다운 화살표가 흰색이되기를 바랍니다 (지금까지 가지고있는 xaml도 아래에 있습니다).흰색 WPF ComboBox DropDown 화살표 색상을 얻으려면 어떻게해야합니까?

<Style x:Key="ComboBoxStyle" TargetType="ComboBox"> 
    <Setter Property="Background" Value="{StaticResource headerBrush}"/> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="BorderBrush" Value="{StaticResource headerBorderBrush}"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="SnapsToDevicePixels" Value="True"/> 
    <Setter Property="MinWidth" Value="100"/> 
    <Setter Property="Height" Value="21"/> 
    <Setter Property="Cursor" Value="Hand"/> 
    <Setter Property="Padding" Value="5"/> 
    <Setter Property="Margin" Value="3"/> 
    <Setter Property="HorizontalContentAlignment" Value="Center"/> 
    </Style> 
    <Style x:Key="ComboBoxItemStyle" TargetType="ComboBoxItem"> 
    <Setter Property="Background" Value="AliceBlue"/> 
    <Setter Property="Foreground" Value="Navy"/> 
    <Setter Property="HorizontalContentAlignment" Value="Left"/> 
    </Style> 

ControlTemplate을 설정하려면?

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="ComboBox"> 
      <Path x:Name="Arrow" Fill="White"/> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 

답변

2

ComboBox의 ControlTemplate을 편집해야하고 화살표를 경로로 볼 수 있습니다. Path의 Fill 속성을 원하는 화살표 색으로 변경합니다. 여기에서 ControlTemplate 샘플보기 http://msdn.microsoft.com/en-us/library/ms752094.aspx

+0

나는 ControlTemplates를 실제로 얻지 못했다. 이 예제의 대상 유형은 ToggleButton으로 xaml 디자이너에서 예외가 발생했습니다. ComboBox로 변경하면 전체 컨트롤이 흰색으로 변한 것 같습니다. 이 문제를 해결할 수있는 간단한 방법이 있습니까 (편집 된 코드 참조)? 감사합니다 – Berryl

+0

Expression Blend를 사용하는 경우 템플릿을 마우스 오른쪽 단추로 클릭하고 템플릿 편집 -> 복사본 편집을 선택하십시오 (올바른 이름이라고 생각합니다). 그렇지 않으면 Reflector를 BamlViewer 추가 기능과 함께 사용하여 PresentationFramework.Aero.dll에서 XAML을 가져와 필요한 부분을 잘라내야합니다. –

+1

편집 한 템플릿의 문제는 ComboBox의 다른 기능을 모두 가지고 있지 않다는 것입니다. Microsoft가 제공 한 템플릿을 살펴보면 다소 복잡하다는 것을 알 수 있습니다. 코드를 복사하고 필요한 변경을하십시오. –