问题标签 [rendertransform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1011 浏览

c# - 使用 RenderTransform 时如何防止文本像素化?

当我使用 RenderTransform 属性并按比例放大 RichTextBox 时,我得到了像素化的放大文本(方形文本边缘)。

我怎样才能防止这种情况? 在此处输入图像描述

编辑:

我有 TextOptions.TextFormattingMode="Display" - 当我删除此选项时,一切都很好!

0 投票
1 回答
335 浏览

wpf - 您如何确定屏幕上的实际尺寸?

在具有缩放功能的 wpf 控件中,我从 MouseWheelEventArgs 计算如何缩放绘图画布以实现缩放效果。

我想知道画布上一个圆圈的实际大小。但是 Width、ActualWidth 等在放大和缩小 (16.0) 时保持不变。您将如何确定(计算?)用户在其屏幕上实际看到的圆圈的大小?

0 投票
2 回答
2456 浏览

c# - WPF Render Transform Behaving Weird

I am experiencing a weird problem with a render transform in WPF. The project I'm working on needs to display a clicked user point over an image. When the user clicks a point, a custom control is placed at the location of their click. The image should then be able to be scaled around any point using the mouse wheel, and the custom control should be translated (not scaled) to the correct location.

To do this, I follow the MouseWheel event as follows:

Then, I implemented an event handler in the custom control for the TransformationChanged event seen at the end of the above code block as follows:

This way, I can ensure that the custom control's position is updated only after the new transform is set. Note that since I am applying the transform to the point, there is no scaling done to the control, the effect is that it is translated to the point it should. This works fine as long as the user is only scaling around one point. If they change that point, it doesnt work. Here are some images that show the problem:

User clicks a point

user zooms out, what happened here?

after zooming out (all the way out in this case) it looks ok

I've been messing with this for about two days now, so I apologize if my code looks messy. I know this is a pretty obscure question so any help would be appreciated.

Thanks, Max

0 投票
1 回答
1231 浏览

wpf - WPF/Silverlight:裁剪到网格单元大小和 RenderTransform

我有一个这样定义的简单网格:

在网格的每个单元格(左上角单元格除外)中,我添加了一个网格或画布。在这些容器中,我添加了几个不同的对象。由于放大或缩小和滚动,其中一些控件可以更改查看大小。

原代码不是我自己的,但我做了一个小测试程序来模拟这种情况:

页面太大并且超出范围,尤其是当我放大时。

我尝试添加剪辑,但我不知道如何动态设置值。

此外,如何获得渲染画布的实际大小和位置。我插入 Zoom_ValueChanged 以读出缩放后的值,但 Width 和 Height 仍然是 200 或 300,ActualWidth 和 ActualHeight 都是零。

提前致谢。

0 投票
0 回答
416 浏览

wpf - RenderTransform 与面板属性与布局转换

我想知道实现拖动移动的最佳UIElements方法Panels

我们知道 ,Canvas.SetTop等比Render Transform 稍微快一些,也可能是更适合布局的方式.Right.Left

  • 其他类型的面板上的自由拖动移动行为怎么样?

  • 如何在调整/拖动子项的大小时应用 Canvas SetLeft 并保持偏移Grid

显然似乎完全不连贯,因为其他面板类型采用的特定布局,但在某些情况下,采用替代原始面板行为的自由定位拖动移动行为可能很有用(在网格中的列之间拖动等......)

也许具有Bool IsDragEnabled在原始面板行为和拖动移动行为之间切换的属性。

0 投票
2 回答
1664 浏览

wpf - RenderTransform Mouse.GetPosition

好的,进行一些更正会更好,并且仅适用于 X 坐标:给定以下代码:

1.(MouseLeftButtonDown)当我第一次点击拖动对象时,它正在正确移动。

2.(鼠标移动)我将对象拖动到任意位置。我的面板上有 100 分。

3.(MouseLeftButtonUp)对象被正确定位在我拖拽的地方。

到目前为止没有问题。但是当我第二次启动事件链时:

1.(MouseLeftButtonDown)被拖动的对象移到后面:

2. (MouseMove)执行拖动移动,但鼠标指针位于 CurrentPointerPosition + FIRSTPosition FROM 拖动对象。

3.(MouseLeftButtonUp) 与第一次一样正确执行(但很明显)。

似乎在 MouseLeftButtonDown 上,必须重置 MouseDownPosition 和拖动对象的位置......

为什么?我做错了什么?谢谢你!

0 投票
0 回答
748 浏览

c# - 将 RenderTransform 应用于 EllipseGeometry

我希望将 RenderTransform 的内容应用于 EllipseGeometry 的物理属性,这意味着 EllipseGeometry 的 Center/RadiusX/RadiusY 属性会因应用变换而改变。我这样做的原因是,我有一个绘图程序,您可以在其中绘制椭圆,并且在绘制后您可以缩放/旋转/平移椭圆,在引擎盖下我将其作为 RenderTransforms 应用于原始 Path 对象(其“数据" 属性是一个 EllipseGeometry 对象)。目前,对于我的绘图程序中的其他几何图形(贝塞尔曲线、直线、圆弧等),当需要将数据保存到文件时,我使用以下方法应用 RenderTransforms。

这给我留下了一个干净的几何图形,“linePath”的 RenderTransform 已应用到该几何图形上。现在我可以轻松地将这个几何图形的内容保存到“Mini Syntax”中的文件中,并在以后重新加载它。我知道我可以对 EllipseGeometry 使用相同的方法,但结果是描述转换后的 EllipseGeometry 的近似 PathGeometry,当我从文件中重新加载数据时,我不知道将结果转换回 EllipseGeometry 的方法。目前,对于绘图中的 EllipseGeometry 对象,我保存物理属性(中心/半径/等),然后将相应的 RenderTransform 作为 XAML 字符串保存到文件中。然后在加载时,我只需从属性创建 EllipseGeometry 并应用保存的 RenderTransform。

现在,这种方法有效,但我觉得保存转换后的椭圆几何会更干净,就像我在其他几何的情况下所做的那样。我在我的应用程序的其他地方也有使用 RenderTransforms 作为 EllipseGeometries 的物理变换,并且变通办法越来越难看,所以我想确定一个这样做的过程(如果可能的话)。

提前致谢!

编辑: 只是为了让问题更开放一点,我不承诺使用 EllipseGeometry,因为我看不出它如何可能用于描述 RenderTransform 中可能存在的所有不同转换(即旋转)。因此,如果可以使用其他方式或其他几何形状来提供“类似椭圆”的行为,我肯定有兴趣了解它。

0 投票
1 回答
896 浏览

wpf - 图像上的 ScaleTransform 留下空白

我正在创建一个带有单个图像和一个多边形覆盖的对话框。问题是图像的比例与多边形的比例不同,所以我想缩小图像以匹配多边形的比例。但是当我使用 RenderTransform/ScaleTransform 标签时,图像会变小,在对话框的右侧和底部留下空白。是的,覆盖现在可以正常工作,但我想让它填满可用空间来填满窗口。

0 投票
2 回答
7086 浏览

xaml - 如何使用 RenderTransform 控制 TextBlock 的方向

我想TextBlock垂直显示,就像 Windows Phone 内置电子邮件应用程序中的用户名一样:

在此处输入图像描述

我的 XAML 代码是:

结果是:

在此处输入图像描述

没有出现在正确的位置,我该TextBlock如何修改 XAML 代码?提前致谢。

0 投票
1 回答
7996 浏览

wpf - 修改 ItemsControl 中项目的 ZIndex

这是我的 ItemsControl 的代码,它在鼠标经过时放大项目。
我没有设法增加当前缩放项目的 ZIndex 以将其置于其他项目之上。

我试图直接更改触发器中的 ZIndex,但它不起作用。
看来我需要更改 ContentPresenter 中的 ZIndex,它是 VisualTree 中 TextBlock 的父级,而不是直接在 TextBlock 中。

所以我尝试更改ContentPresenter中的ZIndex,但它仍然不起作用

有谁知道它是如何工作的?