2010-04-29 9 views
4

StyleUserControl 중 어느 것이 WPF에서 사용하는 것이 더 좋을까요?WPF - 어느 것이 더 낫습니까? 스타일 또는 사용자 정의?

예 : 두 가지 방법으로 이미지 버튼을 만들었습니다. StyleContentTemplate 속성이 사용됩니다. 종속성 속성이있는 다른 클래스 하나를 사용합니다.

다른 방법으로 버튼이 있고 내용 속성이 설정되어있는 UserControl을 만들었습니다. UserControl.xaml.cs 파일에는 종속성 속성도 포함되어 있습니다. 하나를 사용하는 것이 더 좋을 것이다

Custom button template in WPF

: 코드 자세한 내용

이 질문의 답변을 참조? 어느 시나리오에서 Style 또는 UserControl 또는 CustomControl을 사용해야합니까?

답변

2

스타일은 XAML 요소의 기본 속성을 설정하는 것으로 제한됩니다. 예를 들어 BorderBrush를 설정할 때 브러시를 지정할 수 있지만 테두리의 너비는 지정할 수 없습니다. 컨트롤의 모양을 완전히 자유롭게하려면 템플릿을 사용하십시오. 이렇게하려면 스타일을 만들고 Template 속성을 지정합니다.

스타일 및 템플릿을 사용하는 경우에도 컨트롤의 모양 만 변경할 수 있습니다. 비헤이비어와 다른 기능을 추가하려면 맞춤 컨트롤을 만들어야합니다.

예 : 재생 버튼과 같은 버튼을 만들려면 스타일과 템플릿을 사용하지만 일시 중지 후 모양이 변경되는 재생 버튼을 만들려면 UserControl을 사용하십시오.

0

제가 그래픽 도구에 익숙하지 않더라도 Style과 함께 할 수있는 유형의 경우. 필자는 기본 기능과 지루한 기능을 제공하는 경향이 있으며 일단 응용 프로그램 기능이 확인되면 우선적으로 익숙해 질 수 있습니다.

WPF에 대한 가장 좋은 점은 그래픽 외형, 느낌 및 동작의 상당 부분을 코드에서 멀리 떨어 뜨릴 수 있다는 것입니다.

이렇게하면 코드를 다시 보지 않고도 응용 프로그램의 스타일을 변경할 수 있으며 실제로 런타임에 스타일을 변경할 수 있습니다.

XAML 내에 얼마나 많은 비헤이비어가 배치되고 코드 내에 얼마만큼 배치되는지에 관해서는 어색한 행이 있습니다. 대략적인 지침은 UI 내에서 항상 어떤 동작이 나타나야하는지 결정하고 코드에 XAML 내에있는 모든 요소를 ​​배치하는 것입니다.

코드를 정의 된 인터페이스가있는 추상 클래스로 생각하고 XAML 스타일을 해당 클래스를 기반으로하는 클래스로 생각하면 무슨 뜻인지 알게 될 것입니다.

반대로 GUI 작업에서 훨씬 능숙한 사람들은 GUI 작업이 느리거나 어렵다는 것을 알기 때문에 코드 측면을 선호하는 XAML 및 다른 사람들에게 더 많은 기능을 제공하는 것을 선호합니다.

그런 식으로 생각하면 실제로 옳고 그른 대답은 없으며 기술에 맞는 더 나은 솔루션이 있다는 것을 알게 될 것입니다.

관련 문제