Управление масштабированием до формы WPF - PullRequest
17 голосов
/ 12 мая 2009

Как мне реализовать управление масштабированием в моих формах wpf, аналогичное тому, которое доступно в дизайнере Visual Studio?

спасибо!

Ответы [ 4 ]

24 голосов
/ 12 мая 2009

Поместите ваши вещи в сетку, свяжите преобразование масштабирования сетки с ползунком (минимальное значение ползунка должно быть 1):

    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.867*"/>
            <RowDefinition Height="0.133*"/>
        </Grid.RowDefinitions>
        <Slider x:Name="slider" Grid.Row="1" Minimum="1"/>
        <Grid RenderTransformOrigin="0.5,0.5">
            <Grid.RenderTransform>
                <TransformGroup>
                    <ScaleTransform 
                    ScaleY="{Binding Path=Value, ElementName=slider}" 
                    ScaleX="{Binding Path=Value, ElementName=slider}"/>
                </TransformGroup>
            </Grid.RenderTransform>
            <TextBox Text="TextBox" Height="45.214"
 VerticalAlignment="Top" Margin="194,139,209,0"/>
            <TextBox VerticalAlignment="Bottom" 
Text="TextBox" Margin="194,0,209,118.254" Height="48.96"/>
        </Grid>
    </Grid>
5 голосов
/ 13 мая 2009
1 голос
/ 02 апреля 2010

Чтобы получить профессиональный Zoom Control для WPF, посмотрите ZoomPanel .

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

1 голос
/ 12 мая 2009

Вы должны взглянуть на эту статью от Mitsu Furuta (не беспокойтесь о смешном названии!). Я не уверен, что он точно соответствует вашим требованиям, но он может дать вам некоторые идеи ...

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