2014-03-26 3 views
0

Combobox 클래스에서 상속되는 사용자 지정 콤보 상자 컨트롤을 만들었습니다. 모든 콤보 상자에 자동으로 적용되는 ResourceDictionary의 ComboxBox 유형에 대해 정의 된 유형 스타일이 있지만 사용자 정의 컨트롤이 적용되지 않습니다. App.xaml에WPF 사용자 지정 컨트롤에 기본 스타일 적용

<Application.Resources> 
    <Style x:Key="{x:Type ComboBox}" TargetType="{x:Type ComboBox}"> 
     <Setter Property="Background" Value="Gray"/> 
    </Style> 
</Application.Resources> 

사용자 정의 콤보

public class AutoComboBox : ComboBox 

MainWindow.xaml

<StackPanel Orientation="Vertical"> 
     <ComboBox Width="200"/> 
     <local:AutoComboBox Width="200"/> 
</StackPanel> 

을 정의

스타일 첫 번째 콤보 상자는 App.xaml에 정의 된 스타일이 적용될 때 배경이 회색으로 표시됩니다. 그러나 두 번째 콤보 상자에는 여전히 기본 배경색이 표시됩니다.

맞춤 컨트롤에 중복 스타일을 만들지 않고 동일한 맞춤 스타일을 맞춤 컨트롤에 적용 할 수있는 방법이 있습니까?

+1

코드 표시 : XAML + 사용자 지정 컨트롤. –

+0

WPF 컨트롤을 확장하기위한 상속이 권장되지 않습니다. 왜 전역 스타일을 설정하지 않았습니까? 아니면 스타일을 적용하여 선택적으로 스타일 키를 지정하십시오. – markmnl

+0

스타일로 구현할 수없는 Rx 프레임 워크를 사용하여 콤보 상자에서 자동 완성 기능을 제공하기 위해 상속을 사용하고 있습니다. – pchajer

답변

0

테마 방식을 사용하고 있습니까?

그렇다면 ResourceDictionary 인 ../Themes/Generic.xaml이 있어야합니다.

귀하의 ResourceDictionary는 스타일로 설정된 <Style>이어야합니다.

또한 각 테마에 대해 ResourceDictionaryLocation.SourceAssembly이 설정되어 있는지 AssemblyInfo.cs 파일에서 확인해야합니다.

관련 문제