WPF에서 체크 상자의 모양을 사용자 정의하려고합니다. 나는 PresentationFramework.Aero에 정의 된 BulletChrome 클래스의 기본 컨트롤 템플릿을 잡고 작업 할 수 있기를 바랬다. 그러나 BulletChrome은 Control의 서브 클래스가 아니므로 수정할 템플릿이 없습니다. 아무도 내가 이것을 할 수 있다는 것을 알고 있습니까?WPF에서 BulletChrome 요소 사용자 정의
답변
, 당신은 그렇게 할 수 있습니다.
다음 부분에서는 BulletChrome이 어떻게 보이게됩니까? 음, 이것은 WPF에서 드문 부분 중 하나입니다. 여기서 xaml을 사용하지 않고 렌더링을 완전히 처리합니다. ButtonChrome의 시각적 모양은 OnRender()
메서드에서 정의됩니다. 반사판에서
BulletChrome.OnRender() : 당신은 ButtonChrome를 서브 클래스하더라도 그들과 함께
protected override void OnRender(DrawingContext drawingContext)
{
Rect bounds = new Rect(0.0, 0.0, base.ActualWidth, base.ActualHeight);
this.DrawBackground(drawingContext, ref bounds);
this.DrawDropShadows(drawingContext, ref bounds);
this.DrawBorder(drawingContext, ref bounds);
this.DrawInnerBorder(drawingContext, ref bounds);
}
불행히도의 OnRender() 내에서 호출이 모든 방법은 개인이기 때문에, 당신이 할 수없는 혼란, 아마도 단지 상단에 렌더링의 일부를 오버레이합니다.
기본적으로 Reflector에서 렌더링 코드를 파고 자신의 필요에 맞게 수정하거나 자신의 템플릿/데코레이터/무엇이든 처음부터 다시 시작하십시오. (그러나 실제로 작동하는 한 실제로 사용하는 것은 중요하지 않습니다.)
희망이 있으시면 건의하십시오.
당신은 이것을 원하지 않습니다. 컨트롤 템플릿을 변경하면 컨트롤의 비헤이비어를 변경하지 않아도되고 CheckBox 컨트롤에는 정의에 따라 세 가지 상태 (체크 됨, 선택 취소됨, 불확정성)가 있습니다.
CheckBox ControlTemplate에서 많은 Look/Feel을 빌려주는 사용자 지정 4 상태 (또는 원하는대로 n 상태) 컨트롤을 만드는 것이 좋습니다.
그냥 명확히하기 위해 동작을 변경하려고하지 않습니다. 확인란에는 여전히 세 가지 상태가 있습니다. 저는 특정 조건에 따라 ButtonChrome 요소의 모양을 사용자 정의하고 싶습니다. – MadPokey
BulletChrome을 사용자 지정할 수없는 경우 사용자 지정할 수 없습니다. 그러나 당신은 그것을 커스터마이징 가능한 것으로 대체 할 수 있습니다.
실용적인 측면에서 나는 Aero 대신 Silverlight의 테마로 시작하는 것이 좋습니다. 당신은 클래식 템플릿에서 BulletDecorator이 갈 것 CheckBox에 '템플릿에서 BulletChrome의 일종을 배치 할 경우 BulletChrome이 FrameworkElement에서 상속 Decorator, 상속 이후
- 1. WPF에서 Winform 사용자 정의 컨트롤
- 2. 사용자 정의 WPF에서 스타일을 상속하는
- 3. wpf에서 사용자 정의 크롬 Windows
- 4. WPF에서 사용자 정의 TabItem 만들기
- 5. WPF에서 사용자 정의 모양 테두리
- 6. wpf에서 재사용을 위해 사용자 정의 사용자 정의 컨트롤 만들기
- 7. 사용자 정의 양식 요소 스크립트
- 8. 레일에있는 사용자 정의 폼 요소
- 9. Facelet 사용자 정의 구성 요소 - UI를 렌더링 방지 :이 내 사용자 정의 구성 요소 정의입니다 사용자 정의 구성 요소
- 10. WPF에서 fisheye로 사용자 정의 스크롤 레이아웃
- 11. WPF에서 사용자 정의 브러시를 구현하려면 어떻게해야합니까?
- 12. WPF에서 사용자 정의 컨트롤을 변경하는 방법은 무엇입니까?
- 13. WPF에서 사용자 정의 DependencyProperty를 StackPanel에 연결 하시겠습니까?
- 14. C# wpf에서 사용자 정의 알림 팝업 만들기
- 15. WPF에서 사용자 정의 컨트롤에 DataContext 전달
- 16. 사용자 정의 iPhone 사용자 인터페이스 구성 요소
- 17. 사용자 정의 구성 요소 사용자 객체 값
- 18. JavaScript를 사용하여 사용자 정의 컨트롤에서 요소 선택하기
- 19. 플래시 콤보 상자 구성 요소 사용자 정의
- 20. 사용자 정의 컨트롤 또는 그리드의 요소 목록
- 21. 입력란 용 사용자 정의 facelet 구성 요소
- 22. 바인딩 데이터는 사용자 정의 플렉스 구성 요소
- 23. Zend_Form이 사용자 정의 레이아웃의 요소 기본값을 대체합니다.
- 24. Objective-C : 사용자 정의 UI 요소
- 25. iPhone 사용자 정의 ui 구성 요소
- 26. 사용자 정의 MXML 구성 요소 만들기
- 27. 플렉스 사용자 정의 버튼 구성 요소
- 28. SSIS 사용자 정의 데이터 흐름 구성 요소
- 29. 플렉스 차트에 사용자 정의 요소 추가
- 30. .net의 사용자 정의 테이블 구성 요소
큰 정보 주셔서 감사합니다! – MadPokey
그건 Microsoft의 _WPF_가 아닙니다. – TernaryTopiary