우리는 스타일의 기본 부분 만 변경해야하는 TextBox의 사용자 정의 하위 클래스를 작성하고 있습니다. 당신이 Control
를 서브 클래스 때 지금 우리가 알고있는, 일반적으로 당신은어떻게하면 기본 컨트롤의 스타일을 기반으로 스타일을 설정할 수 있습니까?
public class EnhancedTextBox : TextBox
{
static EnhancedTextBox()
{
// Commenting this line out lets this use the default TextBox style.
DefaultStyleKeyProperty.OverrideMetadata(
typeof(EnhancedTextBox),
new FrameworkPropertyMetadata(typeof(EnhancedTextBox)));
}
}
이것은 더 이상 얻을 의미 유형 자체로 서브 클래스 유형에 사용되는 키를 변경 ...이 같은 메타 데이터를 변경하는 거 야 기본 TextBox 스타일 더 큰 것은 아닙니다 ... 우리는 그 라인을 주석 처리하고 키가 여전히 TextBox에서 직접 사용되는 값으로 설정 되었기 때문에 다시 작동합니다. 우리가 이 스타일로 몇 가지를 변경하려는 않은 경우
, 우리는 궁금하지만, 전체가 아닌 스타일, 우리는 단순히 새로운 스타일을 만들 수 있고 그 BasedOn
속성을 설정 ...하지만 우리는 무엇을 할 거기에? 우리는 XAML을 수동으로 뽑아 내고 새로운 스타일을 만들어서 키를주고 StaticResource를 사용하고 싶지는 않지만 'TextBox를 기반으로합니다'라고 말할 수있는 설정을 찾지 못했습니다. 스타일.
나는 그 무엇인가 간단하지만 다시는 찾지 못할 것이라고 기대하고 있습니다. 누구든지 도와 줄 수 있습니까?