【问题标题】:How do I get the width and height of my viewbox如何获取视图框的宽度和高度
【发布时间】:2016-06-15 14:45:35
【问题描述】:

我需要获取 Viewbox 的动态高度和宽度 我的 xaml 的层次结构是这样的:

<Grid>
 <DockPanel>
  <Border>
   <ViewBox/>
  </border>
 </DockPanel>
</Grid>

Viewbox Width 设置为“Auto”,Height 绑定到我的 Controller 中的一个变量。 类层次结构是这样的: Xaml 控制器 (xaml.cs 大多被忽略)

现在我的问题是,即使在直接代码隐藏 (xaml.cs) 中,ActualWidth 和 ActualHeight 也会得到 0。如果我改变我的主窗口的尺寸,我什至没有得到标准的宽度和高度,更不用说动态的了。

如果缺少代码片段或信息,请告诉我。

这是带有红色边框的图像。你得仔细看看底部(一个红色的小边框):enter image description here

问候 理查德

我尝试过的:

我试图在代码隐藏中获取维度: 高度/宽度(仅获取标准的高度和宽度的 NaN)

ActualHeight/ActualWidth(均为0)

RenderSize.Height/RenderSize.Width(均为0)

我也尝试了这篇文章中的解决方案: Getting current size of WPF controls 这就是我使用 RenderSize 解决方案的原因

【问题讨论】:

  • 您何时尝试获取实际/渲染尺寸?
  • 大约每秒一次。
  • 这可能是因为您在渲染窗口之前获得了实际/渲染大小。您是否在检查渲染是否完成后尝试捕获这些值?
  • @KamilSolecki 是的,在窗口内部有一个可见的网络摄像头流。当它说高度和宽度相同时(在这种情况下,高度的绑定值为 877)。这给出了标准尺寸。但是,如果我将 MainWindow 的尺寸更改为 200x200,例如,它仍然说 Viewbox 尺寸是 877
  • 为什么需要ViewBox的大小?做什么?它的Content 将根据ViewBox.Stretch 规则调整大小而忽略ViewBox 的大小。另一件事,我怀疑布局有问题,您能否截取此窗口的屏幕截图,将Border.Backround 设置为Red。它可能是真正的 0 尺寸。

标签: c# wpf viewbox


【解决方案1】:

我结束这个问题是因为主要问题已得到回答。 Kamil Solecki 在 cmets 中回答了这个问题

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多