문제

이 라이브러리가 맞춤형 도서관이 있습니다 색깔 속성. 이 속성을 다음과 같이 XAML로 사용할 수 있습니다.

    <Style TargetType="{x:Type eg:MyWindow}">
        <Setter Property="Background">
            <Setter.Value>
                <SolidColorBrush Color="CustomClass.CustomColorProperty"/>
            </Setter.Value>
        </Setter>
    </Style>

포함 된 네임 스페이스 CustomClass 이미 참조되어 있습니다. 이것에 대해 어떻게 가야합니까? 감사.

편집하다:

방금 알아 차렸다 CustomClass 정적이므로 XAML에서 인스턴스를 만들 수 없습니다. 또한 입력 할 때 예 :, CustomClass Intellisense에는 나타나지 않습니다. 인스턴스 클래스가 있다면 필요한 솔루션을 얻을 수 없습니다. 이 상황에 대한 해결 방법이 있습니까?

편집 2 :

이것은 실제 클래스와 네임 스페이스입니다.

namespace Assergs.Windows
{
    public static class OfficeColors
    {
        public class Background
        {
            public static Color OfficeColor1 = (Color)ColorConverter.ConvertFromString("#e4e6e8");
            public static Color OfficeColor2 = (Color)ColorConverter.ConvertFromString("#dce0ed");
            public static Color OfficeColor3 = (Color)ColorConverter.ConvertFromString("#a8c3e0");
        }
    }
}

그리고 이것은 XAML 네임 스페이스입니다.

xmlns:aw="clr-namespace:Assergs.Windows;assembly=Assergs.Windows"

그리고 Zenuka가 제안한 대로이 라인을 사용한다면 :

<SolidColorBrush Color="{x:Static aw:OfficeColors.Background.OfficeColor1}"/>

컴파일 타임 에이 오류를 던집니다.

Cannot find the type 'OfficeColors.Background'. Note that type names are case sensitive.
도움이 되었습니까?

해결책

이것을 사용하십시오 :

<SolidColorBrush Color="{x:Static aw:OfficeColors+Background.OfficeColor1}"/>

중첩 클래스를 참조 할 점 대신 + 표시를 주목하십시오.

다른 팁

나는 당신이 CustomClass에 정적 속성을 가지고 있고 있습니까? 그런 다음 사용할 수 있습니다.

<SolidColorBrush Color="{x:Static eg:CustomClass.CustomColorProperty}"/>

하지만 네임 스페이스 접두사를 변경해야 할 수도 있습니다 ...

편집하다:
문제는 다른 클래스에서 수업을 선언하고 있기 때문에 있습니다 ... 나는 당신이 클래스 백 그라우드를 OfficeColors 클래스 외부에서 옮기고 그것을 정적으로 선언하거나 배경 클래스의 속성을 OfficeColors 클래스 (백그라운드 접두사 포함)로 옮기는 것이 좋습니다. ) 또는 당신이 시도하고있는 네임 스페이스를 사용합니다.

재미있게 보내세요 :)

edit2 :
중첩 클래스를 참조하기 위해 + 부호 'aw : inficecolors + background.officecolor1'을 사용하여 NIR의 메소드를 사용하십시오.

클래스의 인스턴스를 리소스 중 하나로 선언해야합니다. (CustomColorProperty가 정적이 아니라고 가정)

<CustomNamespace.CustomClass x:Key=CcInstance />
<Style TargetType="{x:Type eg:MyWindow}">        
     <Setter Property="Background">            
         <Setter.Value>                
              <SolidColorBrush Color="{Binding Source={StaticResource CcInstance}, Path=CustomColorProperty} />            
         </Setter.Value>        
     </Setter>    
</Style>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top