문제

Zindexing이 사용자 정의 USERControl에서 작업하려고 노력하고 있지만, 탭 컨트롤 내부에 팝업 될 때 다음과 같이 컨트롤의 바닥을 클립합니다.

Demo of Control

이것은 내 XAML입니다

<StackPanel Panel.ZIndex="1">
    <TabControl Name="TabCtrlMain" Panel.ZIndex="2">
        <TabItem Name="TabItmOrdrLst" Visibility="Collapsed" Panel.ZIndex="3" >
            <StackPanel Panel.ZIndex="4">
                <ri:OrderList x:Name="OrderList" Panel.ZIndex="5" />
                <Rectangle Fill="Orange" Height="80" Width="300" />
            </StackPanel>
        </TabItem>
    </TabControl>
    <Rectangle Fill="Blue" Height="80" Width="300" />
</StackPanel>
도움이 되었습니까?

해결책

게시 한 이미지에서 사용자 컨트롤에는 일종의 시뮬레이션 된 팝업 창 (노트 창)이있는 것처럼 보입니다. 이 경우 노트 패널이 주문 목록의 레이아웃 계산의 일부가 아닌 경우 클리핑을 설명 할 수 있습니다. 음표를 실제 팝업 창으로 제어하거나 확장시 확장기와 같은 것을 사용하는 것이 팽창 할 때 부모 (USERCONTROL)를 더 많은 공간을 렌더링해야한다고 말할 수있는 팽창기와 같은 것을 사용하십시오.

StackPanel과 같은 컨테이너는 항상 자녀가 통제하는 (따라서 이름)를 "스택"할 것이라는 점은 주목할 가치가 있습니다. 이는 어린이 통제가 겹치지 않을 것임을 의미합니다. 이러한 이유로 Z-INDEX를 자식으로 설정하는 것은 의미가 없습니다. 컨트롤을 겹친 다음 z- 인덱스를 설정하려는 컨테이너로 그리드 나 캔버스를 사용하는 것이 좋습니다. 또한 Z-INDEX는 컨트롤의 직계 부모의 맥락에서만 관련이 있으므로 모든 제어 패널을 제공합니다. ZINDEX = "N"은 작동하지 않습니다.

내가 볼 수있는 바에 따르면이 문제는 Z- 인덱스 문제가 아닌 레이아웃 문제입니다.

다른 팁

Zindex가 무엇을 기대하는지에 대한 예에서는 확실하지 않습니다. Zindex는 동일한 컨테이너에서 요소의 상대적 쌓기에만 영향을 미치므로 예제에있는 Zindex 설정 중 어느 것도 영향을 미치지 않습니다. 주문 목록은 Zindex의 상대적 값과 그 어린이들 사이의 상대적 값에 관계없이 Tabitem에 의해 잘린다.

어쩌면 당신은 스택 패널에서 Usercontrol을 깨고 싶을 것입니다. Z 평면의 요소 배치와 함께 놀기 위해 할 수있는 일은 그리드를 가장 바깥 용기로 사용하고 (아직하지 않은 경우) 이것을 요소를 배치하기위한 안내서로 사용하는 것입니다. 그리드 내부의 항목은 동일한 공간을 차지할 수 있으며 선언 된 순서를 기반으로 Z로 표시되므로 원하는 기능을 얻을 수 있습니다.

이것이 당신이하려는 일에 적합한 지 확실하지 않지만 시도해 볼 가치가 있습니다. 컨테이너 내의 품목은 부모 컨테이너의 경계에 잘려서 원하는 것을 달성하기 위해 Usercontrol은 아이가 아닌 스택 패널의 형제 자매가되어야한다고 생각합니다.

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