问题标签 [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 投票
0 回答
65 浏览

c# - 如何阻止网格子元素在 Grid.RenderTransform 上调整大小

好的,所以我有一个Grid带有 4 个孩子的孩子Images,每个孩子都位于所有四个角落,Grid就像这样。 带孩子的网格

底部两个 Child 的目的Images是拉伸网格。所以当用户拖动这些角时,Grid就会拉伸。

我的问题是孩子们也会伸展,这是我不想要的。

拉伸网格

有没有什么办法可以保证孩子的大小不跟的Grid

谢谢。

PS我可以将 ChildImages从 中分离出来Grid,但是这种方式更简单,更优雅,因为 x/y 位置保持在Grid完美的边缘,我只想确保它们不会Scale使用它,如果可能的话。

创建网格并添加子项

操作类

0 投票
1 回答
120 浏览

wpf - 如何在 WPF Image 控件中放大 BitmapSource 的某个区域?

假设我在 WPF Image 控件中有一个 1280x1024 BitmapSource。此图像有一个 100x100 的“活动”区域,我希望能够通过单击按钮放大。我想尽可能地缩放,同时保持纵横比并保持所有“活动”像素可见。这就是我所拥有的:

XAML:

代码:

这是缩放前的样子: 缩放前

这是缩放之后: 缩放后

看起来缩放量是正确的,但我认为问题在于缩放中心应该由于缩放而移动,但我不确定如何预先考虑这一点。

0 投票
1 回答
813 浏览

c# - 如何逐步将 Image TranslateTranform 应用于图像(跳几个像素)

我目前在我的应用程序中通过代码在图像上使用 TranslateTransform 并且它工作正常。

但我希望图像逐步移动,假设每次移动跳跃 10 或 20 像素。有没有办法做到这一点。这给运动带来了复古的味道。

我在想类似 TranslateTransform.Step = 10;

0 投票
0 回答
113 浏览

c# - UWP - 更改 MatrixTransform 的矩阵不会导致变换的更改

我想使用它的 RenderTransform 设置元素的缩放和偏移。

为此,以下代码有效:

但后来我想通过避免每次重新创建 MatrixTransform 来提高我的性能,因为我只需要设置它的值。

所以我提出了以下代码:

不幸的是,当我点击else分支时,Matrix 属性没有更新!即 elem.RenderTransform 保持与方法开始时相同的值。

是否可以只更改矩阵而无需每次重新创建 MatrixTransform?

如果是,我该怎么办?

0 投票
1 回答
45 浏览

wpf - 动画用户控件

我在一个我的两个上使用 Blend 制作了一个不透明动画UserControls,已删除<UserControl.Resources><UserControl.Triggers>然后Storyboard.TargetName将其放入其中App.xaml,它看起来像:

当我在设置Contentmy之前用这样的代码调用它时ContentControl

它按预期工作。TransformGroup对于变换动画,除了上面的那些,我也删除了,现在它看起来像:

如果我以同样的方式调用它,我会收到此错误:

如何解决问题?

0 投票
1 回答
51 浏览

wpf - 同时在同一个 ContentControl 上为两个 UserControl 设置动画

我有这些LoadUnload动画App.xaml

在我的代码中,我在 Button Clicks 上调用它们,如下所示:

GetTG返回一个TransformGroup

只有这些Load动画作品。如何使两者同时工作?

0 投票
1 回答
251 浏览

wpf - WPF画布缩放鼠标位置

我正在使用 Canvas 作为 ItemPanel 的 ItemsControl。尝试根据其他问题的答案实现缩放行为。

复制所需的最少代码应该是这样。

主窗口.xaml

DesignerSheetView 代码隐藏:

以及修改后的 ZoomBehavior

}

我认为 ZoomBehavior 应该没问题,我没有改变太多。问题出在 xaml 中。我观察到很多事情,为此我在这里寻求解决方案:

  • 如果我使用 RenderTransform 模式,缩放会按预期发生在鼠标位置。问题是,背景没有填满容器/窗口。 在此处输入图像描述
  • 如果我使用 LayoutTransform 模式,背景会填充窗口,但缩放不会发生在鼠标位置。变换原点位于 (0,0)。 在此处输入图像描述
  • 无论我选择哪种变换模式,都不会激活 ScrollBar-s。

关于 SO 的大多数问题都始于提问者试图通过布局转换解决缩放问题。几乎所有答案都使用 RenderTransform 而不是 LayoutTrasform (例如thisthisthis)。没有一个答案提供解释,为什么 RenderTransform 比 LayoutTransform 更适合该任务。这是因为 LayoutTransform 也需要更改 Canvas 的位置吗?

为了使 RenderTransform 工作(背景填充整个容器并出现 ScrollBars),我应该更改什么?

0 投票
1 回答
48 浏览

c# - 如何确定多边形(三角形)的旋转点?

我想画一个带箭头的粗透明箭头:

在此处输入图像描述

这是绘制箭头轴的代码。请注意,我必须偏移矩形,以便从矩形的中点进行计算。

请注意,此代码选择边缘中间的一个点来旋转矩形:

问题是我找不到箭头(三角形)的那个点。这是绘制箭头的代码:

请注意创建三角形的 myPointCollection。问题是我已经尝试了 RenderTransformOrigin 中几乎所有可能的值组合,以找到用于旋转点的点(三角形的中心底部)。似乎没有任何进展。

有人可以建议正确的值吗?

编辑解决 了我通过改变三角形的点来解决它。这比试图找出旋转点更容易。

在此处输入图像描述

0 投票
2 回答
125 浏览

c# - 如何使 UIElement 的位置变换持久化?

在寻找在 WPF 中拖动 UIElement 的方法时,我遇到了一些代码并一直在尝试使用它。单击元素时,它会很好地跟随鼠标,但在随后的拖动事件中,元素会将自身重置为其原始位置。

xaml 设置:非常简单,只是一个具有最原始名称的命名 Canvas 和元素,在本例中是一个名为 Tile1 的网格。

一些代码隐藏:

在原始示例中(在此处添加参考)甚至没有使用 MouseUpEvent。没有它,我的元素只会在每次 MouseDragEvent 时重置为其原始位置 0,0。有了它,它会到处乱跳。

我的思路是以某种方式将元素的当前位置设置为 MouseUpEvent 发生的位置。我一直在摆弄不同的东西,因为这些特殊的东西对我来说相当新。示例是:Tile1.TransformToAncestor(Canvas).Transform(mouseLocation); 我还发现 VisualOffset 具有我需要的信息,因此在重置之前它已经以某种方式存储在对象上,但我还没有找到以任何形式访问它的方法。 Tile1.SetValue(VisualOffset.X = ...);或者Tile1Grid.GetValue(VisualOffset);

所以基本上,有没有办法让元素在 RenderTransform 之后不重置其位置?

0 投票
1 回答
99 浏览

wpf - 停止动画而不重置到开始位置 wpf

我在按钮样式中有以下内容,用于刷新按钮 - 当用户将鼠标悬停在按钮上时,其上的图像(在本例中为圆形箭头)旋转:

当用户将鼠标从按钮上移开时,它会停止旋转,这很好,但它也会在零旋转时恢复到其原始位置(用户单击按钮时也会发生同样的情况)。在样式中是否有任何方法可以更改行为,使其停止旋转并保持新的旋转方向,无论是当用户将鼠标移开还是单击按钮时,它都会在第二个 RenderTransform 中向下转换两个点?

如果用户再次将鼠标悬停在按钮上,动画应该从停止的地方开始。

我知道这是一件非常小的事情,但它是一个不会消失的小问题,每次我使用这个模板时,我都会再次尝试解决问题,但没有成功。我忍不住想我错过了什么。我发现的所有相关问题都与动画根本没有停止有关,这对我没有帮助 - 缩小搜索范围已被证明非常困难。