현재 콤보 상자에서 선택한 항목에 적합한 스타일을 쓰려고합니다. 내가하는 이유는 ComboBox가 선택된 항목을 표시하는 방법을 많이 제어하지 못한다는 것입니다. 예를 들어 어두운 배경에서 항목은 여전히 검은 색으로 표시됩니다.내용에 따라 스타일을 지정합니다.
나는 다음과 같은 솔루션과 함께 제공 :
<DataTemplate x:Key="MyItem" DataType="ComboBoxItem">
<TextBlock Text="{Binding}" Foreground="White"/>
</DataTemplate>
<!-- (...) -->
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<!-- ... -->
<!-- Displaying currently selected item -->
<ContentPresenter Margin="2" IsHitTestVisible="False"
VerticalAlignment="Center" HorizontalAlignment="Stretch"
Name="ContentSite"
ContentTemplate="{StaticResource MyItem}"
Content="{TemplateBinding ComboBox.SelectionBoxItem}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
을 이제 간단한 ComboBoxItem
를 선택하면, 그것은 제대로 콤보 상자에 표시됩니다. 반면에, 만약 내가 - 예를 들면 - 어떤 내용의 버튼을 표시한다면, 결과적으로 나는 무엇을 표현하고 싶지 않은지 System.Windows.Shapes.Rectangle
이라는 텍스트를 얻습니다.
ComboBox에 표시된 여러 데이터 유형에 대해 서로 다른 템플릿을 사용하고 싶습니다. 모양을 사용자 정의 할 수 있습니다. 어떻게하면 될까요? 선택에 대한
(하지 :
편집 :
완벽하게 명확하게하기 위해, 나는이 상황에서 선택 (= 선택) 콤보 항목에 대해서 이야기하고 콤보 상자 항목 콤보 상자 목록에)
당신이 작은 예제를 제공 주실 래요 내 DataTemplate을에 ContentTemplateSelector 것을 포함 할 수있는 방법? – Spook
링크를 보셨습니까? –
그래,하지만'ComboBox'에는'ContentTemplateSelector' 속성이없는 것 같습니다. – Spook