使用鼠标坐标缩放 [英] Zoom using mouse co-ordinates

查看:77
本文介绍了使用鼠标坐标缩放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在构建一个基本的图形包,据此绘制折线(以及条形图/直方图等).线条是通过折线元素绘制的.我只是想知道用户是否可以使用鼠标选择区域(左键单击然后拖动),然后画布将仅显示该区域,然后左键单击并显示原始屏幕

我知道可以使用其他语言,但是我不确定如何使用xaml和c#来实现.

任何帮助将不胜感激: -)
我的代码的示例是:

< TabControl x:Name ="graphCanvas"保证金="5">
PreviewMouseMove =``graphPosition''> =" Bar>
< Canvas x:Name =" BarCanvas" PreviewMouseMove =``graphPosition''> TabItem Header ="PolyLine">
< Canvas x:Name ="polyCanvas" PreviewMouseMove =''graphPosition''>

!< ;!-x和y轴->


X的第80行X2 ="580". Y1 ="350". Y 2 ="350". StrokeEndLineCap ="Triangle" StrokeThickness ="2"/<
<X1 ="80" X2 ="80". Y1 ="350". Y 2 ="50". StrokeEndLineCap ="Triangle" StrokeThickness ="2"/>
< TextBlock Canvas.Bottom ="0"; Canvas.Left ="300" FontSize ="12"星期几</TextBlock>
以及< TextBlock Width ="50" TextWrapping ="Wrap" Canvas.Bottom ="225" Canvas.Left ="15" FontSize ="12"销售数量</TextBlock>
PreviewMouseRightButtonDown ="colourdown"; PreviewMouseLeftButtonDown =" mousedownsize" PreviewMouseLeftButtonUp ="mouseupsize";描边="AliceBlue"; StrokeThickness = QUOT; 2英寸;>结果< Polyline.Points>结果<绑定路径= QUOT;聚"/>结果</Polyline.Points>结果</折线>
< Polyline Stroke =黑色"; PreviewMouseRightButtonDown ="colourdown"; StrokeThickness ="2". PreviewMouseLeftButtonDown =" mousedownsize" PreviewMouseLeftButtonUp ="mouseupsize"; >结果< Polyline.Points>结果<绑定路径= QUOT; POLY2"/>结果</Polyline.Points>结果</折线>结果<折线x:名称="P3"; PreviewMouseRightButtonDown ="colourdown";描边=蓝色" StrokeThickness ="2". PreviewMouseLeftButtonDown =" mousedownsize" PreviewMouseLeftButtonUp ="mouseupsize"; >结果< Polyline.Points>结果<绑定路径= QUOT; POLY3"/>结果</Polyline.Points>结果</折线>结果</画布>结果</TabItem的>结果< TabItem的部首= QUOT;缩放">结果</TabItem的>结果</TabControl.Items>结果</TabControl的>

i'm currently building a basic graph package whereby lines (and bar charts/histograms etc) are drawn.  the line's are drawn via the polyline element

i am just wondering if it is possible for the user to select an area using the mouse (left clicking then dragging), and then the canvas will only display this area, then left clicking and the original screen is shown

i know it is possible in other languages but i'm not sure how to do it using xaml and c#.

any help would be really appreciated :-)

an example of my code is:

<TabControl x:Name="graphCanvas" Margin="5">
                <TabControl.Items>
                    <TabItem Header ="Line">
                        <Canvas x:Name="LineCanvas" PreviewMouseMove="graphPosition">
                            ................
                        </Canvas>
                    </TabItem>
                    <TabItem Header ="Bar">
                        <Canvas x:Name="BarCanvas" PreviewMouseMove="graphPosition">
                            ..................
                        </Canvas>
                    </TabItem>
                    <TabItem Header ="PolyLine">
                        <Canvas x:Name="polyCanvas" PreviewMouseMove="graphPosition">
                            <!-- x and y Axis -->
                            <Line   X1="80" X2="580" Y1="350" Y2="350" StrokeEndLineCap="Triangle" StrokeThickness="2"/>
                            <Line  X1="80" X2="80" Y1="350" Y2="50" StrokeEndLineCap="Triangle" StrokeThickness="2"/>
                            <TextBlock Canvas.Bottom="0" Canvas.Left="300" FontSize="12"> Days of the Week </TextBlock>
                            <TextBlock Width="50" TextWrapping="Wrap" Canvas.Bottom="225" Canvas.Left="15" FontSize="12"> Number of Sales </TextBlock>
                            <Polyline x:Name="polysize1"  PreviewMouseRightButtonDown="colourdown" PreviewMouseLeftButtonDown="mousedownsize" PreviewMouseLeftButtonUp="mouseupsize"  Stroke="AliceBlue" StrokeThickness="2">
                                <Polyline.Points>
                                    <Binding Path ="poly"/>
                                </Polyline.Points>
                            </Polyline>
                            <Polyline Stroke="Black"  PreviewMouseRightButtonDown="colourdown" StrokeThickness="2" PreviewMouseLeftButtonDown="mousedownsize" PreviewMouseLeftButtonUp="mouseupsize" >
                                <Polyline.Points>
                                    <Binding Path ="poly2"/>
                                </Polyline.Points>
                            </Polyline>
                            <Polyline x:Name="P3" PreviewMouseRightButtonDown="colourdown" Stroke="Blue" StrokeThickness="2" PreviewMouseLeftButtonDown="mousedownsize" PreviewMouseLeftButtonUp="mouseupsize" >
                                <Polyline.Points>
                                    <Binding Path ="poly3"/>
                                </Polyline.Points>
                            </Polyline>
                        </Canvas>
                    </TabItem>
                    <TabItem Header="Zoom">
                    </TabItem>
                </TabControl.Items>
            </TabControl>

推荐答案

请在以下线程中给出我的答案和示例.

Please my answer and example to this on the following thread.

http://social.msdn.microsoft .com/Forums/zh-CN/wpf/thread/73fbeade-bca9-44b9-aba4-a28e4b503df7

 


这篇关于使用鼠标坐标缩放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆