18

如何对我的 wpf 表单实现缩放控件,类似于 Visual Studio 设计器中可用的控件?

谢谢!

4

4 回答 4

25

将您的东西放入网格中,将网格的比例渲染转换绑定到滑块(滑块的最小值应为 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>
于 2009-05-12T04:57:00.153 回答
5

也许您可以尝试使用 Codeplex 上 WPF Extensions中的 Zoom Control :

替代文本 http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=wpfextensions&DownloadId=66810

于 2009-05-12T22:05:53.110 回答
1

要获得 WPF 的专业缩放控制,请查看ZoomPanel

它不是免费的,但非常易于使用并具有许多功能 - 动画缩放和平移,支持 ScrollViewer,支持鼠标滚轮,包括 ZoomController(带有移动、放大、缩小、矩形缩放、重置按钮)。它还附带许多代码示例。

于 2010-04-02T18:08:10.617 回答
1

你应该看看Mitsu Furuta 的这篇文章(不要担心有趣的标题!)。我不确定它是否完全符合您的要求,但它可以给您一些想法......

于 2009-05-12T08:36:11.250 回答