wpf 도구 모음 분리기는 스택 패널 내부에있을 때 아무것도 줄지 않습니다.

StackOverflow https://stackoverflow.com/questions/1274370

문제

매우 간단한 WPF 앱이 주어졌습니다

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="800">
    <Grid>
        <ToolBar Height="50" >
            <MenuItem Header="Test1" />
            <MenuItem Header="Test2" />

            <StackPanel Orientation="Horizontal">
                <Separator />
                <MenuItem Header="Test3" />
                <MenuItem Header="Test4" />
                <MenuItem Header="Test5" />
            </StackPanel>
        </ToolBar>
    </Grid>
</Window>

분리기 요소는 아무것도 줄어들지 않습니다. 스택 패널이 시작되기 직전에 분리기를 넣으면 나타납니다. 왜 이런 일이 발생합니까? 이것을 피하기 위해 어딘가에 적용 할 수있는 스타일 설정이 있습니까?

도움이 되었습니까?

해결책

그만큼 StackPanel 방향을 바꾸고 있습니다 Separator 어떻게든. 당신이 명시 적으로 말하면 Separator 20 단위의 너비는 Separator 수직선 대신 수평선이됩니다. 그것은 무슨 일이 일어나고 있는지의 일부입니다.

당신이 a LayoutTransform ~로 Separator, 그것은 무엇이든 취소합니다 StackPanel 하고있다.

<Separator>
    <Separator.LayoutTransform>
        <RotateTransform
            Angle="90" />
    </Separator.LayoutTransform>
</Separator>

나는 필요를 이해하지 못한다 StackPanel, 그렇지만.

다른 팁

분리기 기본값으로의 수평 방향.

도구 모음에는 툴바가 항목의 기본 스타일을 무시하기 때문에 툴바 내부에 직접 배치 된 분리기에는 스타일이 변경되었습니다. 다른 곳에 배치 된 분리기는 분리기의 기본 스타일을 얻습니다. 따라서 StackPanel 내부에 보관하기 위해 Vwant를 사용하면 분리기를 스스로 스타일링해야합니다.

이 코드 리젝트 토론 이를 달성하기위한 샘플 코드가 포함되어 있습니다.

참조: WPF는 해제되었습니다 Adam Nathan, 117 페이지.

툴바는 당신이 내부에 넣은 것에 대해 재미 있습니다. 모든 요소가 도구 모음의 직접적인 어린이가 아닐 때 재미 있습니다. 그룹화 요소는 도구 모음 (도구 모음 그룹), 툴바 및 도구 모음 (논리적, 오버플로 붕괴)입니다. 이것이 WPF 가보고 싶은 것입니다.

<Grid>
    <ToolBarTray>
        <ToolBar Height="Auto">
            <ToolBarPanel Orientation="Horizontal" ToolBar.OverflowMode="AsNeeded"/>
            <MenuItem Header="Test1" />
            <Separator/>
            <MenuItem Header="Test2" />
        </ToolBar>
        <ToolBar Height="Auto">
            <ToolBarPanel ToolBar.OverflowMode="Never"/>
            <MenuItem Header="Test3" />
            <MenuItem Header="Test4" />
            <Separator/>
            <MenuItem Header="Test5" />
            <ToolBarPanel ToolBar.OverflowMode="AsNeeded"/>
            <MenuItem Header="Test6" />
            <MenuItem Header="Test7" />
        </ToolBar>
    </ToolBarTray>
</Grid>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top