WPF变焦控制

时间:2015-12-22 18:35:08

标签: wpf zoom

如何实现放大wpf?创建一个用户可以在地图上上传和绘图的应用程序。使用缩放滑块,用户无法在地图上绘图。没有缩放滑块,用户可以绘制。而不是第三方控件,有没有办法实现缩放?我尝试实现它,我可以在xaml中看到滑块但是当我运行它时,滑块消失

enter image description here 任何想法都非常感谢。非常感谢。

     <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="273.333"/>
                                    <ColumnDefinition Width="1026.667"/>
                                </Grid.ColumnDefinitions>

                                <Slider x:Name="uiScaleSlider" ToolTip="Determines the UI scale factor." Value="1" Minimum="0.1" Maximum="4" Margin="67,0,-67,-0.333" Grid.ColumnSpan="2"/>
                                <DockPanel Grid.Column="0" Grid.ColumnSpan="2" LastChildFill="True" Margin="0,0,0,-0.333">
                                    <DockPanel.LayoutTransform>

                                        <ScaleTransform 
        CenterX="0" CenterY="0"
        ScaleX="{Binding ElementName=uiScaleSlider,Path=Value}"
        ScaleY="{Binding ElementName=uiScaleSlider,Path=Value}"
    />
                                    </DockPanel.LayoutTransform>
                                    <Canvas x:Name="drawingCanvas" Margin="0,10,85,33">
                                        <Canvas.Background>
                                            <ImageBrush ImageSource="../Images/canvas.png" AlignmentX="Center" AlignmentY="Center" Stretch="Fill"/>
                                        </Canvas.Background>
                                    </Canvas>
                                </DockPanel>
                            </Grid>
                        </ScrollViewer>
                        <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Top" ResizeDirection="Rows" />

                    </Grid>

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是使用ViewBox。我在这里描述了一个类似的场景:Creating a WPF Window that allows zooming and panning