Динамический размер холста с полосами прокрутки - PullRequest
1 голос
/ 20 апреля 2010

Я занимаюсь разработкой простого приложения WPF без какой-либо автоматической разметки. Цель состоит в том, когда пользователь щелкает (мышь вниз) элемент (скажем, textBlock) появится в месте щелчка мыши. Для этого я использую панель холста, встроенную в сетку из 1 строки, 1 столбца и scrollviewer (видимый). Вопросы: 1. при изменении размера окна приложения средства просмотра прокрутки не становятся активными. 2. Мне нужна возможность автоматического увеличения холста с помощью перетаскивания мышью. Примерно так же, как в MS-Excel, когда пользователь перетаскивает мышь горизонтально / вертикально, холст должен расти.

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

-P

1 Ответ

1 голос
/ 20 апреля 2010

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

        <Ellipse Grid.Column="0" Fill="Red"/>
        <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch"/>

        <!-- Creating a grid with one row and one column"-->
        <ScrollViewer x:Name="ServerLiistCanvasScrollViewer" 
                    HorizontalScrollBarVisibility="Auto" 
                    VerticalScrollBarVisibility="Auto"                         
                      Height="Auto" Width="Auto"
                    Grid.Column="2" >

            <Grid x:Name="drawingGrid" Grid.Column="2" 
                  VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
                  Background="Pink"
                  MouseDown="handleCanvasMouseDown">
            </Grid>        
        </ScrollViewer>


    </Grid>
...