아무도 모른다,WPF에서 (ComboBox가 열렸을 때) Combobox 배경색을 어떻게 변경합니까?
클릭하면 콤보 상자 배경색을 변경하는 방법 (ComboBox가 열려 있음)은 WPF에서?
아무도 모른다,WPF에서 (ComboBox가 열렸을 때) Combobox 배경색을 어떻게 변경합니까?
클릭하면 콤보 상자 배경색을 변경하는 방법 (ComboBox가 열려 있음)은 WPF에서?
여기에 약간 순진 접근 방식 :
<ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100"
>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<Trigger Property="IsDropDownOpen" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
이 처음이 Green
에 Background
속성을 설정하지만 드롭 다운이 나타납니다 때 Red
로 이동하는 정렬합니다. 그러나,이 두 가지 문제가 있습니다 : 일부 Windows 테마에서
ComboBox.Background
속성은 드롭 다운 목록이 아닌 단추 자체의 모양에만 영향을줍니다. 실제로하고 싶은 것은 팝하는 부분의 배경색을 변경하는 것일 수 있습니다. 즉 실제로 드롭 다운에 나타나는 ComboBoxItem
컨트롤의 배경 색상을 변화하고 있지만이 원하는 효과를해야합니다, <ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100" >
<ComboBox.Resources>
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="Orange" />
</Style>
</ComboBox.Resources>
</ComboBox>
은 엄밀히 말하면 : 2 당신이 원하는 어떤 경우,이 트릭을 수행 .
기본 제공 ComboBox
템플릿이 Background
속성에 대한 지원을 제대로 제공하지 않기 때문에 1을 수정하려는 경우 사용자 지정 템플릿이 필요합니다. 버튼 부분의 색상이 변경되기 때문입니다 다양한 상황에서. Aero 테마의 모양은 ComboBox
이며 실제로 사용자 지정 배경색을 지원하도록 설계되지 않았으므로 컨트롤에 대한 사용자 지정 모양을 만들어야합니다.
좋아, 뒤에 코드에 대한 귀하의 질문에 대답 : 그러니까 기본적으로
((ComboBox)o).Background = GetBrushByRGB(r, g, b);
foreach (ComboBoxItem item in ((ComboBox)o).Items)
{
item.Background = GetBrushByRGB(r, g, b);
}
:
foreach (String tag in tags)
{
ComboBoxItem item = new ComboBoxItem();
item.Content = tag;
cbTags.Items.Add(item);
}
는 그런 다음 항목에 배경 색상을 수정할 수 있습니다
이 콤보 상자에 항목 추가하기 ComboBoxItem의 배경색을 변경해야합니다.
먼저 콤보 박스의 기본 템플릿을 가져와야합니다 (필요한 경우 아래에서 자세한 내용 참조). 그 후, 최초의 "ControlTemplate.Triggers"태그 내부에이 XAML을 넣어 : 드롭 다운이 열려있을 때
<DataTrigger Binding="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter Property="Background" TargetName="templateRoot" Value="Red"/>
</DataTrigger>
귀하의 콤보 버튼 레드있을 것입니다.
기본 템플릿을 가져 오려면 다음과 같이하십시오. Visual Studio 2015에서 디자인 모드로 페이지를 봅니다. 그런 다음 콤보 박스를 마우스 오른쪽 버튼으로 클릭하고 "템플릿 편집 -> 복사본 편집"을 선택하십시오. 이렇게하면 기본 템플릿이 생성됩니다.
사용중인 언어 또는 프레임 워크를 알려주십시오. – Dominic
어떤 프로그래밍 언어입니까? – spajce
안녕하세요. WPF (.Net) – Nimesh