Tag: zoom

视口内图形相对于鼠标坐标的实际坐标

正如我在标题中指出的那样,我已经开始研究一个简单的应用程序,它包含在主框架窗口中,一个双缓冲面板。 在这个面板中可以绘制一些图形,让我们认为这个面板是内部绘制元素的简单视口。 这里添加了两个function,平移和缩放可以使用在MouseDown上更新的delta和Move事件以及OnMouseWheel更新缩放变换来缩放转换和转换内部转换内部的转换。 在尝试添加function以支持在视口内创建节点(图形元素)到缩放大于1(缩放100%)时的精确位置时,真正的问题已经到来。 场景1 – >黄色矩形已正确创建,并且位于鼠标指针位置,如下图所示(比例== 1)。 场景2 – >黄色矩形相对于鼠标位置高度移动,视口比例为aprox。 40%,如下图所示(比例== 1.4)。 红色填充的圆圈是鼠标按下的(光标位置保持不变,只进行了缩放)。 测试场景 – >在发布之前我尝试了很多方法而没有成功,这是其中之一: 我非常感谢任何类型的输入,甚至是与更改OXY图形方法相关的想法(因为翻译函数使用相对坐标)。

是否可以“缩放”WPF RichTextBox中的文本?

我注意到WinForms RichTextBox有一个ZoomFactor属性,我认为这正是我想要的 – 遗憾的是,WPF变体似乎完全没有。 有没有什么方法可以实现相同的function(增加/减少整个文档的可见文本大小而不实际更改底层RTF)? 更新:虽然在RichTextBox上设置LayoutTransform似乎在非常简单的设置下工作,但它与设置ZoomFactor并不完全相同,因为有几件事: 首先,滚动条也被缩放。 这看起来很傻。 第二,在我的应用程序中(出于某种原因,但不是在Kaxaml中 – 我会探究这个以找出原因),文本是位图缩放,这样它只是放大渲染文本而不是矢量缩放它所以它是平滑的。 这是我正在谈论的一个例子(注意方式 – 大自定义滚动条): 替代文字http://img822.imageshack.us/img822/298/3b7e4e04afc943ff85b2a98.png 更新2:好的,我发现位图缩放是由TextOptions.TextFormattingMode设置为Display而不是Ideal 。 将其设置为理想状态会重新引入矢量缩放。 但是仍然有那个讨厌的滚动条! 我的意思是一个选项是禁用RichTextBox上的滚动并将其包装在ScrollViewer中,但我想知道这是否会降低性能。 我也想知道如果我这样做,文本包装是否仍然有用。

从屏幕上的鼠标光标位置获取图像坐标(WPF图像控件)

我正在寻找一个透明地为WPF图像控件添加平移和缩放function的解决方案,我找到了由WiesławŠoltés和Konrad Viltersten开发的解决方案https://stackoverflow.com/a/6782715/584180 ,这是非常出色的。 现在我想在控件中添加一个“鼠标点击”事件,以便我可以在原始图像坐标系中点击点击的坐标,这样我就可以使用它们来检索像素颜色。 我知道会有一些舍入,如果图像缩小,颜色将与屏幕上显示的实际颜色不对应。 我也明白,用户可能会在图像边框外单击,在这种情况下,我希望返回空点或负坐标。 我不是C#进行转换的方法的专家,目前我仍然坚持这一点(要在ZoomBorder.cs类中添加): public Point GetImageCoordsAt(MouseButtonEventArgs e) { if (child != null) { var tt = GetTranslateTransform(child); var mousePos = e.GetPosition(this); var transformOrigin = new Point(tt.X, tt.Y); return mousePos; // Wrong: how do I transform this? } return null; }

如何检索WinForms PictureBox的缩放系数?

我需要鼠标指针在PictureBox上的精确位置。 我使用PictureBox的MouseMove事件。 在这个PictureBox上,我使用“缩放”属性来显示图像。 获取鼠标在原始(未经处理)图像上的位置的正确方法是什么? 有没有办法找到比例因子并使用它? 我认为需要使用imageOriginalSize / imageShowedSize来检索此比例因子。 我用这个函数: float scaleFactorX = mypic.ClientSize.Width / mypic.Image.Size.Width; float scaleFactorY = mypic.ClientSize.Height / mypic.Image.Size.Height; 是否可以使用此值来获取光标在图像上的正确位置?

使用两种forms缩放

我的项目中有多个表单。 Form1包含一个显示jpeg的pictureBox。 在Form2中,我有一个trackBar,我想控制Form1中图像的缩放级别。 为了简单起见,我只需要2或3个缩放级别。 我在Designer视图中将pictureBox设置为public。 但是,当我尝试在Form2中引用pictureBox时,它表示它不存在。 下面是我用来在Form1中调用Form2的代码 Form2 dataWindow = new Form2(); dataWindow.ShowDialog(); 总之,我需要帮助的两件事是: 1)从单独的表单更改pictureBox1的属性。 2)创建简单的缩放公式。

图表 – 放大以显示更精确的数据

所以我现在有一张图表,其中包含大量数据。 这可以在下图中看到: 基本上我希望用户能够放大并进一步查看数据。 正如您所知,它目前已经携带了大量数据。 我希望用户能够缩放并查看更精确的内容。 protected void drawChart() { DataTable dt = new DataTable(); dt.Clear(); foreach (DataGridViewColumn col in dataGridView1.Columns) { dt.Columns.Add(col.HeaderText); } foreach (DataGridViewRow row in dataGridView1.Rows) { DataRow dRow = dt.NewRow(); foreach (DataGridViewCell cell in row.Cells) { dRow[cell.ColumnIndex] = cell.Value; } dt.Rows.Add(dRow); } chart1.DataBind(); chart1.DataSource = dt; chart1.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount; chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 90; […]