初学,求助关于C#中对图片的操作 如何使用WPF编写一个显示图片的控件,对图片进行放大后会出现上下和左右的滚动条?另外,对放大后的图片进行截图时,如何获取用于截图的矩形框相对于图片的位置? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议直接使用 Canvas 套个 ScrollView, Canvas 背景用于显示图片。截图矩形直接定位在 Canvas 上,控件的 Canvas.Left, Canvas.Top 就是位置了。 我是通过鼠标画一个Rectangle来截图的。然后想获取Rectangle在图片中的相对位置,这个位置不会随着图片的放大或者缩小而改变。这样一来,有了坐标和原图,就可以显示坐标区域内的图片了。这个有点类似一些评卷系统里面的题块划分。有什么办法可以图片顶点的左边吗? 图片控件上 MouseDown 的 Position 不好意思额,这个问题落下了一段时间。我是按照下面来设计的,程序运行加载图片的时候,会显示滚动条,发大图片之后,滚动条并没有变,也就是放大后只能显示一部分区域而已,这是为什么呢? <Grid Background="White" Margin="3,40,3,35" Name="photoGrid" > <ScrollViewer Grid.Column="1" Name="scrollViewer1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> <Viewbox Name="viewbox1" Margin="0"> <Grid Name="dgPhoto"> <Grid.Resources> <TransformGroup x:Key="ImageTransform"> <RotateTransform /> <ScaleTransform /> </TransformGroup> </Grid.Resources> <Image Name="imagePaper" Stretch="None" RenderTransformOrigin="0.5,0.5" RenderTransform="{StaticResource ImageTransform}" /> <my:DrawingCanvas x:Name="drawingCanvas" Background="#00000000" MouseLeftButtonUp="drawingCanvas_MouseLeftButtonUp" /> </Grid> </Viewbox> </ScrollViewer> </Grid> 横向滚动条让它显示出来。话说你套了好多层啊,本来Grid就自带Scroll了。 已经是显示出来了的,设置为了auto。该如何修改呢?奇怪的是加载一张高度和宽度都大的图片时,横向和纵向的的滚动条都会显示,不过继续放大图片,滚动条没有变化。这是后台响应slider事件的代码。 private void sliderPhoto_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { TransformGroup transform = dgPhoto.FindResource("ImageTransform") as TransformGroup; ScaleTransform scalTransform = transform.Children[1] as ScaleTransform; scalTransform.ScaleX = sliderPhoto.Value; scalTransform.ScaleY = sliderPhoto.Value; } 一个超级简单而奇怪的问题 WPF中datagrid问题 困扰多天的问题 请问这个LINQ查询怎么写 关于接口的基础题,请高手来解答一下! dateTimePicker 时间默认 请教mp3Hunter的原理 开发环境中怎么样才能找到PDA的文件目录?急啊.... ADO.NET中如何锁定数据库的一个表~? 程序每隔2秒读取一次数据表,表数据500多条,数据半年变一次,能不能把这些数据放到内存里,不用每次读库 请问怎样在FLEX CELL里用代码查找合并单元格 c#输入字符串的格式不正确,求解!
图片控件上 MouseDown 的 Position
<ScrollViewer Grid.Column="1" Name="scrollViewer1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Viewbox Name="viewbox1" Margin="0">
<Grid Name="dgPhoto">
<Grid.Resources>
<TransformGroup x:Key="ImageTransform">
<RotateTransform />
<ScaleTransform />
</TransformGroup>
</Grid.Resources>
<Image Name="imagePaper" Stretch="None" RenderTransformOrigin="0.5,0.5" RenderTransform="{StaticResource ImageTransform}" />
<my:DrawingCanvas x:Name="drawingCanvas" Background="#00000000" MouseLeftButtonUp="drawingCanvas_MouseLeftButtonUp" />
</Grid>
</Viewbox>
</ScrollViewer>
</Grid>
{
TransformGroup transform = dgPhoto.FindResource("ImageTransform") as TransformGroup;
ScaleTransform scalTransform = transform.Children[1] as ScaleTransform;
scalTransform.ScaleX = sliderPhoto.Value;
scalTransform.ScaleY = sliderPhoto.Value;
}