Есть ли способ использовать мышь для перетаскивания / изменения размера холста? - PullRequest
3 голосов
/ 25 февраля 2011

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

        <Canvas Grid.Row="0" Panel.ZIndex="99">
            <Border Width="450" BorderThickness="1">
                <Expander etc />
            </Border>
        </Canvas>
        <OtherControls Grid.Row="1"/> etc

Вместо того, чтобы устанавливать размер холста, естьспособ разрешить пользователю перетаскивать его вместо размера?

1 Ответ

0 голосов
/ 29 марта 2012

вот мысль: Положите все в сетку.Пусть сетка автоматически изменит свой размер, поместит холст в сетку (убедитесь, что он занимает всю сетку), чтобы он соответствовал размеру родителя:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <Canvas Background="Transparent" Grid.RowSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

    <Border Width="450" BorderThickness="1">
            <Expander etc />
    </Border>

    <OtherControls Grid.Row="1"/>
</Grid>

, не уверен, насколько это может быть актуально, но проверьтеиз этого поста.Может быть, это даст вам некоторые идеи (я написал это 4 года назад, слишком долго, чтобы помнить детали, но код компилируется и запускается):

http://denismorozov.blogspot.com/2008/01/how-to-resize-wpf-controls-at-runtime.html

...