问题标签 [layouttransform]
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.
c# - 数据绑定到表单的宽度
我正在尝试动态缩放基于 WPF 的应用程序的 UI,我想使用当前分辨率与本机分辨率的比率,如下所示:
我发现缩放变换的原因是它缩放了容器内的所有 UI 元素,包括框架和子页面。
有没有办法做到这一点?
或者,是否有更好的方法来根据窗口大小动态缩放应用程序?
wpf - WPF 使用转换显示应用级别的叠加层
我有一个FrameworkElement
嵌套如下(理想情况下,解决方案不应该依赖于特定路径):
我希望显示我的 Grid[2] ,因为它是Grid
(or Window
)的直接子级,Margin=0
并且两个对齐都设置为Stretch
(即Dock=Fill
某种东西),使用任何转换(因为它是一种形式,我需要保留按钮可点击等,所以我赞成LayoutTransform
)。显然我希望 Grid[2] 成为最顶层的控件。
想知道它是否可行,如果可行,最好的方法是什么?请注意,我无法使用行为或任何我希望仅通过应用转换完成的任何事情来重新分配 Grid[2] 父级。
更新 1 - Grid[2] 没有大小,所以如果它可以随着窗口大小的调整而拉伸,那就太好了。
wpf - 模板绑定到 ScaleTransform 在自定义控件中不起作用
我创建了从 Control 派生的简单自定义控件。
这个控件有 2 个 DP,我在 ScaleTransform 上的 xaml 中绑定。
后面的代码。
XAML。
我在 Window 中使用 MyControl。在我更改 LayoutTransform 后面的 Window 代码中的 ScaleX 和 ScaleY 属性后,它没有起火。
所以我在 MyControl 中为 ScaleX 和 ScaleY 添加了处理程序。在这些处理程序中,我手动执行 ScaleTransform。这行得通。那么 TemplateBinding 的问题在哪里呢?
使用此解决方法 ScaleTransform 有效。
c# - 从 Silverlight 工具包中提取 LayoutTransformer - 行为怪异
背景信息:长话短说,我们公司目前正在使用 Telerik Silverlight 工具和 Silverlight 工具包来完成我们在计划中需要的内容。由于 Silverlight 即将消亡且 Silverlight 工具包自 2011 年以来未更新,我们正在删除对 Silverlight 工具包的所有依赖项,并尝试用 Telerik Alternative 替换这些控件,这样我们就不会同时使用这两个工具包。这样我们的客户只需要下载一个 5mb 的文件而不是 10mb 的文件。
由于没有 Telerik 替代 LayoutTransformer,我决定从源代码中提取代码并将其放入我们的项目中。从此处从工具包中提取源文件后,将它放在我的项目中,然后更新所有引用我最终遇到了一个小问题。
有问题的屏幕应该看起来像这样:
但更改后它最终看起来像这样:
我唯一更改的是
至
使控件引用我提取的代码而不是程序集中的代码。
似乎包含所有信息的网格没有自动调整大小,而是所有信息都被塞进了那个小区域。(即使代码都没有改变)
有谁知道是什么可能导致新的 LayoutTransformer 表现得像这样即使所有代码在技术上都是相同的?我从工具包中提取代码并将其放入我的项目中是否有问题?我试图将其仅确定为相关信息,但如果您需要更多信息,请告诉我。谢谢!
c# - 缩放父项中的未缩放控件
我有一个 WPF UserControl,它的作用类似于视口(在以下上下文中我将其称为“视口”)。此视口可以缩放和平移其内容(我认为缩放使用 Layout- 或 RenderTransform 来缩放内容)。基本上内容只是一个画布。这个画布包含一些形状和一些用于显示形状元数据的文本框。如果缩放因子为 1,一切都很好,但如果我缩小,画布会缩小,而且 TextBoxes 也会导致元数据不可读,因为文本太小了。
如何强制 TextBoxes 反缩放,以便它们不会改变屏幕上的大小?
我曾考虑将视口的变换(导致缩放)传递给文本框(以某种方式)并将其逆向应用于它们,但这对我来说似乎是错误的。另一种方法是使用包含 TextBoxes 的 Adorner。我在Stackoverflow上找到了一个关于带有控件的装饰器的主题,但我不确定这种方法是否比另一种更好。
因此,如果有人有更好的解决方案,我将不胜感激。
提前致谢
wpf - 为什么 LayoutTransform 在旋转时不改变顶点坐标 (x1,y1)
我有一个包含形状(路径)的画布,我在布局变换中将角度与旋转变换绑定。
当鼠标悬停在形状上(由我的路径生成)时,我在画布上生成 MouseRightButtonUp,然后右键单击我使用布局变换旋转 90 度。
但它的行为类似于渲染变换,因为我绑定的 canvas.left 和 canvas.top 在鼠标右键单击形状旋转后不会更新/更改,而角度会改变。我的代码在这里:
在视图模型中调用的旋转方法是:
为什么 Canvas.Left 和 Canvas.Top 即使在改变角度改变形状的位置后也不会更新?(假设矩形A(x1,y1) B(x2,y2) , c(x3,y3) D(x4,y4)
在旋转 90 度后必须是A(x2,y2) B(x3,y3) , c(x4,y4) D(x1,y1)
为什么我的模型中 Canvas.Left 和 Canvas.Top 永远不会更新?
这种行为在 Rendertransform 中是预期的,但为什么在这种情况下 LayoutTransform 表现得像 Rendertransform 因为我使用了 LayOutTranform
c# - 是否可以将所有受 UIElement RenderTransform 影响的属性复制到新元素中?
我想复制具有基于 RenderTransform 的新属性的元素。例如,一个画布上的元素到另一个画布的 ScaleTransform。
uwp - 如何在 UWP 中旋转 Textblock 后获得正确的宽度和高度
我需要在旋转后获取 TextBlock 的自动大小。下面是我在 RenderTransform 的帮助下将 TextBlock 旋转 90 度的代码,但它占用的空间比旋转后所需的空间多。
在 WPF 中,借助 LayoutTransform,我可以正确获取文本块的自动大小(高度和宽度)。但在 UWP 中,LayoutTranform 不可用。
如何在 UWP 中旋转后获得正确的 Textblock 高度和宽度?
问候,肖比卡。
wpf - WPF画布缩放鼠标位置
我正在使用 Canvas 作为 ItemPanel 的 ItemsControl。尝试根据其他问题的答案实现缩放行为。
复制所需的最少代码应该是这样。
主窗口.xaml
DesignerSheetView 代码隐藏:
以及修改后的 ZoomBehavior
}
我认为 ZoomBehavior 应该没问题,我没有改变太多。问题出在 xaml 中。我观察到很多事情,为此我在这里寻求解决方案:
- 如果我使用 RenderTransform 模式,缩放会按预期发生在鼠标位置。问题是,背景没有填满容器/窗口。
- 如果我使用 LayoutTransform 模式,背景会填充窗口,但缩放不会发生在鼠标位置。变换原点位于 (0,0)。
- 无论我选择哪种变换模式,都不会激活 ScrollBar-s。
关于 SO 的大多数问题都始于提问者试图通过布局转换解决缩放问题。几乎所有答案都使用 RenderTransform 而不是 LayoutTrasform (例如this、this和this)。没有一个答案提供解释,为什么 RenderTransform 比 LayoutTransform 更适合该任务。这是因为 LayoutTransform 也需要更改 Canvas 的位置吗?
为了使 RenderTransform 工作(背景填充整个容器并出现 ScrollBars),我应该更改什么?