问题标签 [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.
wpf - 更改 UIElement 的角度
我有这个代码:
这设置了Angle
我的Image
元素.. 它可以工作,但是它并没有像我预期的那样移动。
我只是想知道是否Angle
是根据图像的右上角设置的?那么,它是否将图像从图像的右侧旋转 25 度?
c# - 如何计算其他控件的 RenderTransformOrigin 标准?
我想计算其他控件的“RenderTransformOrigin”标准。请看这张图片,因为我的英语说得不好。
有盒子放在同一层。不是孩子,不是父母。绿色框理论上是父级。所以所有控件的 RenderTransformOrigin 与绿色框的位置相同。但我认为 RenderTransformOrigin 是本地坐标系。
我想计算 RenderTransformOrigin ...
感谢您
编辑 我目前正在尝试这种方式....
中心点(局部坐标系?)
ItemHeight * CriteriaItem.OriginY
ItemWidth * CriteriaItem.OriginX
计算(中心点在结果之上)
CenterPoint.X / TargetBoxWidth
CenterPoint.Y / TargetBoxHeight
Final
Convert TargetBox的locar坐标系)
Cavnas.TranslatePoint(CalculatedPoint, TargetBox)
编辑
我以上述方式解决了。
扩展方法
用法
但....
当我更改“RenderTransformOrigin”时,这个旋转和位置发生了变化......
旋转完成后,想办法在不使用 RotateTransform 的情况下保持旋转对象。
帮我。
谢谢你。
c# - 缩放父项中的未缩放控件
我有一个 WPF UserControl,它的作用类似于视口(在以下上下文中我将其称为“视口”)。此视口可以缩放和平移其内容(我认为缩放使用 Layout- 或 RenderTransform 来缩放内容)。基本上内容只是一个画布。这个画布包含一些形状和一些用于显示形状元数据的文本框。如果缩放因子为 1,一切都很好,但如果我缩小,画布会缩小,而且 TextBoxes 也会导致元数据不可读,因为文本太小了。
如何强制 TextBoxes 反缩放,以便它们不会改变屏幕上的大小?
我曾考虑将视口的变换(导致缩放)传递给文本框(以某种方式)并将其逆向应用于它们,但这对我来说似乎是错误的。另一种方法是使用包含 TextBoxes 的 Adorner。我在Stackoverflow上找到了一个关于带有控件的装饰器的主题,但我不确定这种方法是否比另一种更好。
因此,如果有人有更好的解决方案,我将不胜感激。
提前致谢
c# - WPF:如何仅在一个轴上减少线条厚度
在 WPF 中,我试图在 UserControl 中绘制图形线。我需要按不同的量缩放 X 和 Y 值。
我有一个示例项目,我将在下面包含。问题是,当我使用 RenderTransform 缩放图形线时,LineThickness 也会被缩放。这通常不会成为问题,因为我可以通过缩放值的倒数对线条粗细进行缩放: LineThickness = desiredLineThickness * (1/scaledValue)
不幸的是,在这个应用程序中,我需要通过非常不同的值来缩放 X 和 Y 尺寸,并且 LineThickness 没有分成 X 和 Y 值。
在下面的示例中,我正在绘制一个正弦波,该正弦波被缩放到用户控件的绘图表面的大小。您可以看到峰和谷延伸到绘图表面之外。这是因为原始数据从 1.0 变为 -1.0,并缩放到绘图表面的高度并转换到绘图表面的中间。
为了更清楚地展示它,我还画了一条从 0,0 到 90,90 的蓝线,然后从 90,90 水平向右。这条线也被缩放到绘图表面的高度。可以看到水平线很粗。
我需要一种方法来将 Y 轴上的这些线与 X 轴分开,在这种情况下不会缩放。
我尝试了几种方法,包括制作包含的线条对象。我在想我可以将线条的端点放在缩放位置,然后在绘制实际线条时,我会使用渲染变换来缩放 Y 值,但由于整个绑定代理问题,我永远无法让它工作.
任何人有任何想法或曾经面临过这个问题?我不能成为第一个遇到这个问题的人。
这是代码:
UserControl1.xaml.cs:
用户控件.xaml:
GraphPen.cs:
MainWindow.xaml:
MainWindow.xaml.cs:
按海报编辑
我忘了显示 BindingProcy.cs
按海报编辑
这是一个屏幕截图:
c# - UWP:在 WebView 上使用 ScaleTransform 来缩放/缩放内容
我正在尝试使用 ScaleTransform 缩小 WebView,同时正确缩放(缩放)内容。即,如果我使用 ScaleTransform 将 WebView 缩放到大小的 50%,则内容也应该缩放到 50% 缩放级别,因此您可以看到与以前相同的内容,只是缩小以适应 WebView 的新大小。
我知道这是可能的,因为当您应用 ScaleTransform 时 AdControl 会正确缩放其内容,并且 AdControl 在内部使用 WebView 控件来显示广告。
与 AdControl 一起使用的示例代码:
如果将相同的代码应用于 WebView 控件,它会缩小控件的大小,但内容会被剪裁而不是缩小。
正确缩放控件的内容不应需要使用 JavaScript 注入或任何其他“笨拙”的方法,因为 Microsoft 的 AdControl 是否会使用此类技术是非常值得怀疑的。它都应该能够在 XAML 或代码隐藏 (C#) 中处理。
谢谢您的帮助!
c# - Wpf Width、ActualWidth 和 RenderSize 结果相同
尝试在 WPF 中获取转换(旋转)元素的实际宽度时遇到问题。我在画布中有一个包含图像的矩形。当我旋转矩形时,我想让渲染的宽度在我的窗口中居中,但无论我如何尝试,我总是得到基本宽度。
我尝试使用 Width、ActualWidth、RenderSize.Width :完全相同的结果。我尝试使用 LayoutTransform 和 RenderTransform,同样如此。
我真的不明白我做错了什么,我读到的关于这个主题的所有内容都表明我应该使用 ActualWidth 来获取整个边界框的渲染宽度,而不是我的矩形/图像的默认宽度。
这是我的代码:
设置 scaleTransform :
和旋转:
谢谢 !
c# - 使用布局变换以图像中心为原点缩放
我想在画布控件中缩放图像,保持画布中心为原点。最初我尝试使用渲染变换效果很好,但缩放后没有出现滚动条。我搜索了一下,发现布局变换应该用于该目的.我的问题是我现在在缩放后得到滚动条但缩放原点在画布的左上角,我怎样才能将它设置为中心。
一些建议说要在布局变换上设置 centerX 和 centerY,但我的应用程序的大小是动态的,我可能不固定中心点。
wpf - 在图像渲染期间难以将 ScaleTransform (WPF) 与 Transalate Transform 相结合
WPF。
(我预先申请了看似代码墙,但问题对我来说似乎很复杂,我希望尽可能完整)。
我有一个放在 InkCanvas 上的图像:
拖动完成后。注意: 我希望左上角位于“X”的位置,即 DRAGCOMPLETE 时光标所在的位置:
这是我用来实现上述图像的代码。本质上,问题归结为在调整图像大小后计算正确的平移变换。我已经尝试了所有我能想到的但没有成功。真正令人困惑的是,光标的偏移量似乎在某种程度上取决于图像被放到 InkCanvas 上的位置。也就是说,如果图像被放置在更靠近左边界的位置,则偏移量会比放置在中心位置时更加明显。非常混乱。
ImageResizing.Create() 现在将 rendertransforms 和 thumb 装饰器添加到图像以调整大小、移动和旋转:
TopLeft Thumb 装饰器定义为:
我正在使用 DragDelta 将轮廓路径元素定位到最终所需的大小,如下所示:
请注意,我打算使用左上角从右下角调整图像大小。因此,随着左上角被拖动,图像的所有点都将远离右下角。
最后,我使用 DragCompleted 事件在图像上实际执行新的渲染:
为了完整起见,装饰器被定位为:
我一定会很感激任何帮助或建议。我究竟做错了什么?
TIA
注意:这个问题的答案是缩放导致倾斜