Панели WPF - нестандартная укладка - PullRequest
2 голосов
/ 28 января 2011

Я хочу сделать что-то другое, но я не представляю, как просто это сделать. Это обычная укладка панели деформации (слева направо сверху вверх, и затем она не имеет места, тогда следующий элемент будет сложен в первую левую верхнюю свободную позицию):

enter image description here

Но я хочу сделать наложение сверху вниз справа и сверху, и если нет места для следующего элемента, то я хочу, чтобы следующий элемент был сложен в первом левом нижнем свободном месте.

Как это:

|    X
|    X
|   XX
|   XX

Вероятно, это невозможно сделать, используя только WarpPanel. Я открыт для новых идей.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 28 января 2011

Это больше шутка, чем производственный код, но это работает!:)

XAML:

    <Window.Resources>
        <Style TargetType="FrameworkElement" x:Key="rotateItPlease">
            <Setter Property="RenderTransform">
                <Setter.Value>
                    <ScaleTransform ScaleX="-1" ScaleY="-1" />
                </Setter.Value>
            </Setter>
            <Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
        </Style>
    </Window.Resources>

, а затем примените этот стиль как к вашему WrapPanel, так и ко всем его детям (будет еще проще, если вы будете иметь свою wrapPanel в составенекоторые ItemsControl):

    <WrapPanel Orientation="Vertical" Style="{StaticResource rotateItPlease}"> 
        <Button Style="{StaticResource rotateItPlease}">Hello</Button>
        <Button Style="{StaticResource rotateItPlease}">Hello</Button>
        <!-- More buttons here -->                       
    </WrapPanel>
0 голосов
/ 28 января 2011

Я не думаю, что вы можете настроить WrapPanel для этого. Но вы всегда можете создать собственную панель.

Поищите в Интернете реализацию пользовательской панели в WPF, и вы получите множество учебных пособий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...