2010-01-30 6 views
5

스타일 및 컨트롤 템플릿을 사용하여 사용자 지정 단추를 만들었습니다. ButtonBorderColour 및 RotateButtonText와 같은이 단추에 대한 사용자 지정 속성을 정의하고 싶습니다.스타일에 대한 사용자 지정 속성을 정의하는 wpf

어떻게해야합니까? XAML을 사용하여 수행 할 수 있습니까? 아니면 작업 뒤에 C# 코드가 필요합니까?

답변

4

DependencyProperty.Register를 사용하여 C#에서 속성을 선언해야합니다 (또는 사용자 지정 단추 tyoe를 만들지 않으면 DependencyProperty.RegisterAttached). 다음은 사용자 정의 버튼 클래스를 작성하는 경우 선언의 : 사용자 정의 클래스를 생성하지만, 보통의 버튼에 설정할 수있는 속성을 정의하지 않으면

public static readonly DependencyProperty ButtonBorderColourProperty = 
    DependencyProperty.Register("ButtonBorderColour", 
    typeof(Color), typeof(MyButton)); // optionally metadata for defaults etc. 

public Color ButtonBorderColor 
{ 
    get { return (Color)GetValue(ButtonBorderColourProperty); } 
    set { SetValue(ButtonBorderColourProperty, value); } 
} 

이 사용 RegisterAttached :

public static class ButtonCustomisation 
{ 
    public static readonly DependencyProperty ButtonBorderColourProperty = 
    DependencyProperty.RegisterAttached("ButtonBorderColour", 
    typeof(Color), typeof(ButtonCustomisation)); // optionally metadata for defaults etc. 
} 

다음은 XAML로 설정할 수 있습니다.

<local:MyButton ButtonBorderColour="HotPink" /> 
<Button local:ButtonCustomisation.ButtonBorderColour="Lime" /> 
관련 문제