问题标签 [actualwidth]

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 投票
1 回答
4148 浏览

c# - 对象的 ActualWidth 和 ActualHeight 报告为 0?

我有一个应用程序,其中包含多个Grid继承自抽象类的实例,UserControl如下所示:

以及它们继承的类(这是一个非常基本的类,只有几个方法和属性):

这些网格是在运行时动态构建的,每个网格的大小都可以变化。当用户关闭应用程序时,我想捕获每个屏幕截图Grid并将它们保存到本地机器。为此,我创建了一个方法来获取对象大小并使用RenderTargetBitmap(). 他们中的许多人都可以毫无问题地保存,但是有些网格正在返回一个ActualWidthActualHeight0因此没有保存。我不确定从哪里开始调试这个问题,因为它们都是同一个对象的实例;他们中的一些人有他们的ActualWidthActualHeight设置而其他人没有,怎么可能呢?它们都在应用程序中显示没有问题。

如果您需要更多信息/代码,请告诉我。谢谢!

0 投票
1 回答
1255 浏览

c# - 为什么执行 RenderTransform 后 ActualWidth/ActualHeight 没有改变?

我有以下代码来调整图像控件的大小

虽然代码正常工作,但我试图理解为什么图像在缩放ActualWidthActualHeight不改变。它们始终与WidthHeight值相同。

如何获得新的图像控件大小?我必须通过比例变化率手动计算吗?

0 投票
1 回答
1213 浏览

c# - 查找用户控件的实际宽度

我正在使用 XAML/C# 处理一些布局内容,由于某些原因,我无法使用该SizeToContent="Width"选项,但我想在某些情况下模拟它。我有一个位于扩展器内的用户控件,我希望能够获得该用户控件的 ActualWidth,以便在扩展器展开时我可以相应地增加 GridColumn 和窗口的大小。因为 ExpanderIsExpanded="False"在 ActualWidth 属性读取为 0.0 时开始。有什么方法可以让用户控件的 ActualWidth 就好像它完全可见并且SizeToContent="Width"有效一样?

我一直在拼命想弄清楚如何在不硬编码实际值的情况下计算这个宽度。DesiredSize.Width并且RenderedSize.Width在展开器折叠时都返回 0.0

0 投票
1 回答
1056 浏览

wpf - WPF 依赖属性已更改 ActualWidth == 0

如何强制 Window 在构造函数中测量其控件,以便 和 的值ActualWidthActualHeight为零?这是演示我的问题的示例(我尝试调用 Measure 和 Arrange 函数,但可能以错误的方式)。

XAML:

后面的代码:

这个例子的重点是从左边缘到右边缘绘制了Count条垂直线。当我更改 TextBox 中的值时效果很好,但是我希望已经在开始时绘制线条。

那么我需要如何更新代码以在开始时绘制线条呢?还是与上述代码不同的方法更适合实现这一目标?

感谢您的任何努力。

0 投票
1 回答
1123 浏览

wpf - 无论列表项的大小如何,列表框的宽度都会发生变化

请参阅帖子底部的更新

我正在使用 .Net 4.5 编写 WPF 应用程序

我有一个ListBox显示电影信息,xaml 如下所示。

列表中的每个缩略图(图像)都将具有相同的宽度和高度(小、中或大)。对于我拥有SizeToContent=Width的窗口,当缩略图大小更改时,窗口将自行调整大小。

问题是这样的:当我ListBox使用鼠标滚轮滚动时,ListBox宽度看似随机变化并导致窗口宽度增加。如果我使用滚动条向上和向下按钮滚动,则不会发生这种情况。

我已经调试了项目数据模板ActualWidth中的所有元素ListBox(文本块、堆栈面板、边框等),它们都保持在预期的固定宽度,但调试列表框本身的宽度表明它随机改变宽度.

这是两个屏幕截图。第一个显示正确的布局,第二个显示ListBox用鼠标滚轮滚动后的布局。

正确的布局

滚动后,列表框变宽了!

那么,为什么其中ListBox ActualWidth包含的项目没有变化?

更新: 一些进一步的调查表明,这种行为是由于我用于缩略图的图像大于缩略图显示大小并且由图像控件调整大小造成的。似乎列表框(有时)根据原始图像大小而不是较小的调整大小的图像调整大小。

有人有任何建议来克服这个问题吗?

0 投票
2 回答
1752 浏览

javascript - 尝试使用 jQuery 获取元素的实际宽度和高度

我正在尝试使用 jQuery 获取元素的宽度和高度。现在我有一个函数可以在元素周围包裹一个 span 并从临时 span 元素中获取大小。

HTML

JS

一个(不)工作示例:http: //jsfiddle.net/KmeaC/1/

获得“Hello world”实际宽度和高度的唯一方法是删除它周围的 div 标签:http: //jsfiddle.net/ycxTr/。但这不是我想要的:)

任何人?

0 投票
1 回答
3158 浏览

wpf - WPF 将子控件的宽度绑定到父控件的实际宽度是个坏主意吗?

我想我很好奇,因为我发现了一个无限循环,其中孩子的尺寸变大了,然后父母反复变大并修复了它。但是,我想知道是否只是覆盖度量并找到父级的大小然后返回所需的大小是否是一个更好的主意。通过不更改Widthor Height,我消除了创建无限循环的可能性。另一方面,通过不绑定 xaml 中的宽度,如何确定控件的宽度现在隐藏在代码隐藏中。

0 投票
1 回答
1118 浏览

c# - WPF 当孩子的宽度绑定到父母的实际宽度时会发生什么

因此,如果我将绑定放置在将其链接到其父对象的子对象的宽度上ActualWidth,会发生什么?

我的猜测是,父母测量孩子想要多少宽度,孩子告诉父母 0 宽度,然后在安排期间给父母实际空间,它试图给孩子零,因为孩子不想要。那么给予父级的空间的实际宽度应该会导致绑定改变子级的宽度。在这一点上,我猜想再次执行布局。

但是,这假设绑定不会传播得那么快。当绑定值传播到目标时,我仍然很模糊。这完全取决于父母的实际宽度值何时发生变化。布局完成后会发生这种情况吗?然后装订件更新?每个绑定都会中断当前运行的代码去更新目标值吗?如果不是,如果一个绑定传播需要重绘的更改,然后另一个绑定传播导致重绘的不同更改等,它不会导致问题。

有人问我的实际问题是什么:

所以最初我想有一个控制伸展来填充可用空间。很简单,但我想让它在滚动查看器中。Scrollviewer 在测量期间为其子项提供无限空间。因此,您可以将子控件的宽度和高度绑定到父控件的实际宽度和实际高度;布局做了第二遍,一切似乎都膨胀了。

但是,后来我在控件模板中拉伸控件时遇到了类似的问题,但后来发现我可以设置 minwidth 和 alignment=stretch 让它拉伸。

然而,我清楚地记得早些时候在我的另一个控件上尝试过它并且它不起作用,所以我回过头来试图弄清楚这两种情况之间的区别是什么。基本上它归结为其中一个在堆栈面板中的几个级别。

所以现在我对一个使用绑定,对另一个使用 minwidth plus 对齐方法。不管怎样,我只是对此感兴趣,以确保我做事的方式以后不会产生奇怪的错误。

我希望当宽度或高度发生变化时布局不会立即运行,而是系统会定期重新检查大小变化

0 投票
1 回答
3885 浏览

wpf - wpf - 绑定问题 ActualWidth

我有以下 XAML 代码:

我试图在更改某些标签的可见性并设置不同的文本(因此不同的长度/宽度)时尽可能宽地显示进度条。

然后我有不同的功能:

  • 在程序开始时,标签的“no id”文本labelID被替换为内部值。宽度已更新OK
  • 随着代码的运行,我改变了前两个标签的可见性,并且ColumnDefinition.Width没有更新,只显示前两个标签(因为没有足够的位置让所有 4 个标签都适合 wrapPanel ActualWidth:错误!
  • 如果我Visibility将前两个标签的属性从更改CollapsedVisible,从一开始所有标签的可见性都是Visible,并且所有标签都显示:OK
  • 从之前的状态,我将前两个标签的可见性更改为CollapsedColumnDefinition.Width更新并且ProgressBar尽可能宽,并且显示所有文本:OK

有人可以帮我吗?我不明白为什么宽度没有更新......

注意:使用运行以下代码的窗口中的两个按钮更改可见性:

编辑:我的目标是使用最小空间(一行)显示可见标签,以便让 ProgressBar 使用可能的最大宽度。

0 投票
2 回答
850 浏览

.net - 在控件上设置边距、宽度绑定到实际宽度会导致 VS2012 崩溃

我在搞乱DataGrid标题,发现了一些尴尬的事情。我一直在玩弄它,直到在 XAML 中找到根本原因并构建了一个如何重现的小样本。

我只使用文本框和数据网格对此进行了测试,但我怀疑它也适用于其他控件。当数据网格或文本框的宽度绑定到同级元素时,在数据网格或文本框上设置Margin属性(我设置)将导致我的整个 Visual Studio 几乎立即停止响应。 Margin="2"ActualWidth

这是设计预览在停止响应之前的样子。窗口延伸到“无穷大”,直到我怀疑 VS 内存不足。

在此处输入图像描述

知道是什么原因造成的吗?