wpf中一个窗体中有两个控件,一个控件作为小屏,该控件里面的canvas里面放有一张图片,该图片利用Windows系统消息可对图片进行缩放,另一个控件作为大屏,现在希望在对小屏中的图片进行缩放等等操作的时候,大屏控件里面呈现的效果和小屏控件呈现的效果同步,该怎么做呢?求简单例子WPF控件同步放大缩小
解决方案 »
- 关于PostMessage这个函数
- 帮忙看个小问题
- 关于exe互相调用的问题
- C#做C/S程序,数据库连接怎么写,请帮忙!
- 我有一个关于WinForm的问题,请大家帮帮忙?谢谢!
- C盘都爆满了,这两个文件到底是做什么的啊,大家帮我看看啊!
- 未处理的“System.UnauthorizedAccessException”类型的异常出现在 system.xml.dll 中。
- 我想学C#,问几个问题!!
- 又有麻烦了,怎么在客户端下载服务端中存储在数据库表中的文件。
- 一个奇怪的问题,我的Keydown事件为什么只能响应一次?
- wpf中datagrid加载大数据
- winform dataGridView导入问题
如果不是的话,将你的Windows消息下的多点转换为值,并同步到另一个图片上的 ScaleTransform,RotateTransform,TranslateTransform就好!
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>