wpf中一个窗体中有两个控件,一个控件作为小屏,该控件里面的canvas里面放有一张图片,该图片利用Windows系统消息可对图片进行缩放,另一个控件作为大屏,现在希望在对小屏中的图片进行缩放等等操作的时候,大屏控件里面呈现的效果和小屏控件呈现的效果同步,该怎么做呢?求简单例子WPF控件同步放大缩小

解决方案 »

  1.   

    楼主说的两个屏 是两个显示器吗?如果是一个显卡接两个显示器的话,把模式设置为复制模式。这样两个屏就可以同步了!
      如果不是的话,将你的Windows消息下的多点转换为值,并同步到另一个图片上的 ScaleTransform,RotateTransform,TranslateTransform就好!
      

  2.   

    我想限制canvas里面的图片在只能在这个canvas里面活动,就是有个边界判断,该怎么做啊,后台代码
      private void thumbnail_ManipulationStarting_1(object sender, ManipulationStartingEventArgs e)
            {
                e.ManipulationContainer = thumbnail;
                e.Mode = ManipulationModes.All;
            }        private void thumbnail_ManipulationDelta_1(object sender, ManipulationDeltaEventArgs e)
            {
                FrameworkElement element = (FrameworkElement)e.Source;
                element.Opacity = 0.5;            Matrix matrix = ((MatrixTransform)element.RenderTransform).Matrix;            var deltaManipulation = e.DeltaManipulation;            Point center = new Point(element.ActualWidth / 2, element.ActualHeight / 2);
                center = matrix.Transform(center);            matrix.ScaleAt(deltaManipulation.Scale.X, deltaManipulation.Scale.Y, center.X, center.Y);            matrix.RotateAt(e.DeltaManipulation.Rotation, center.X, center.Y);            matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y);
                ((MatrixTransform)element.RenderTransform).Matrix = matrix;
            }        private void thumbnail_ManipulationCompleted_1(object sender, ManipulationCompletedEventArgs e)
            {
                FrameworkElement element = (FrameworkElement)e.Source;
                element.Opacity = 1;
            }
    前台xaml代码
    <Canvas Name="thumbnail"   ManipulationStarting="thumbnail_ManipulationStarting_1" ManipulationDelta="thumbnail_ManipulationDelta_1" ManipulationCompleted="thumbnail_ManipulationCompleted_1" ClipToBounds="True">
                        <Image Name="ThumbPic" IsManipulationEnabled="True" Stretch="Uniform">
                            <Image.RenderTransform>
                                <MatrixTransform></MatrixTransform>
                            </Image.RenderTransform>
                        </Image>
                    </Canvas>