문제

그들이 속한 Uielements의 크기와 함께 XAML 속성 스케일을 가질 수있는 방법이 있습니까?

본질적으로, 나는 다른 크기의 동일한 컨트롤을 사용하고 싶기 때문에 사용하기에는 너무 큰 컨트롤 템플릿이 있습니다. 문제는 제어 크기를 자동으로 설정할 수 있다는 것입니다 (ControlTemplate에서)이지만 내부 템플릿 요소의 특성은 크기가 크지 않다는 것입니다. 예를 들어 뇌졸중은 10이지만 1이되어야합니다.

템플릿에 scaleTransform을 적용 할 때 잘 작동하지만 실제로 사용될 때 너무 작은 컨트롤이 발생합니다. 너비/높이 = 자동 크기로 제어를 적절한 크기로 크기를 조정합니다. 그리고 ScaleTransform이 적용됩니다. 그래서 나는 일종의 비정상적인 제어를 가지고 있습니다.

나는 WPF를 처음 접 했으므로 이것을하는 간단한 방법이있을 수 있습니다 ...

도움이 되었습니까?

해결책

런타임시 템플릿 컨트롤의 템플릿 컨트롤의 너비와 높이에 템플릿 내 컨트롤의 너비와 높이를 바인딩하려고 시도 할 수 있습니다. 같은 것 :

<Button>
    <Button.Template>
        <ControlTemplate TargetType={x:Type Button}>
            <Border Width="{TemplateBinding Property=ActualWidth}"
                    Height="{TemplateBinding Property=ActualHeight}">
                <ContentPresenter />
             </Border>
         </ControlTemplate>
    </Button.Template>
</Button>

바인딩 소스는 다음과 같습니다 FrameworkElement.actualwidth 그리고 FrameworkElement.actualHeight 템플릿 컨트롤의 특성. 이러한 특성에는 렌더링 된 후 컨트롤의 너비와 높이가 포함되어 있으며, 이는 너비 그리고 속성. 이는 값이 궁극적으로 시각적 트리의 부모 컨트롤의 크기를 고려하여 런타임에 계산되기 때문입니다.

다른 팁

설명은 약간 모호하지만 스트레치가 컨트롤의 루트 요소로 균일하게 설정된 뷰 박스를 갖고 싶을 것 같습니다.

너무 나쁘면 스택 패널, 도크 패널, 그리드 또는 기타 컨테이너에 대한 컨트롤 템플릿을 만들 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top