스타일 지정하려는 사용자 정의 컨트롤이 있습니다.WPF 스타일 지정 사용자 정의 컨트롤
TextBox 및 다른 인터페이스를 상속하는 클래스 일 뿐이므로 인터페이스는 추가 속성 만 추가합니다.
읽기 전용 속성이 설정되면 배경이 회색으로 바뀌도록이 사용자 지정 컨트롤에 스타일을 적용 할 수 있습니까?
public class DionysusTextBox : TextBox, IDionysusControl
{
public DionysusTextBox()
{
SetStyle();
}
#region IDionysusControl Members
public bool KeepReadOnlyState
{
get { return (bool)GetValue(KeepReadOnlyStateProperty); }
set { SetValue(KeepReadOnlyStateProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc...
public static readonly DependencyProperty KeepReadOnlyStateProperty =
DependencyProperty.Register("KeepReadOnlyState", typeof(bool), typeof(DionysusTextBox), new UIPropertyMetadata(true));
#endregion
#region Style
Style styleListBoxItem = new Style(typeof(DionysusTextBox));
Trigger triggerReadonly = new Trigger { Property = DionysusTextBox.IsReadOnlyProperty, Value = true };
private void SetStyle()
{
triggerReadonly.Setters.Add(new Setter(DionysusTextBox.BackgroundProperty, Brushes.Black));
this.Triggers.Add(triggerReadonly);
}
#endregion
}
위는 전체 클래스에 대한 코드, 나는 스타일이 적절한 방법처럼 보였다 사용하지만 방법 나는 다음과 같은 오류가 디자이너에이 컨트롤을 추가 할 때 :
를Triggers collection members must be of type EventTrigger.
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
앞에'Trigger' 만 할 수있다 스타일에 적용됩니다. 귀하의 경우'styleListBoxItem' 아니라'this'. – LPL
간단하게, 나는 그것을 바꿨다. 그리고 더 이상 오류를받지 않는다. 그러나 스타일은 효과가 없다, 어떤 생각? –
스타일을 적용하지 않습니다. – LPL