【问题标题】:Usercontrol, resize inside the grid用户控件,在网格内调整大小
【发布时间】:2014-06-30 04:36:51
【问题描述】:

我有一个典型的用户控件,画布上有一些绘图。我已使用以下代码将该用户控件插入网格中

 <Routine:FlashUserControl x:Name="FlashControl" Grid.Row="0" Grid.Column="2"  Grid.RowSpan="9" Grid.ColumnSpan="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />, 

但用户控件在网格区域上方(如附图中指定)溢出,而不是适合该区域(2 列 x 9 行)

即使 VerticalAlignment、Horizo​​ntalAlignment、Horizo​​ntalContentAlignment 和 VerticalContentAlignment 在用户控件中定义为拉伸,为什么会发生这种情况?

更新:

如果我总结一下这个问题,我在用户控件中的绘图实体超出了画布限制,我想我需要重新缩放绘图

【问题讨论】:

  • Routine:FlashUserControl 控件是什么?在我看来,它封装了一些本机(基于 GDI)控件。请注意,WPF 的呈现引擎独立于传统的 GDI,并且 WPF 承载的任何本机 (GDI) 控件都覆盖在 WPF UI 之上。我想要么 Routine:FlashUserControl 受到限制并且需要明确的宽度/高度声明,要么它可能有一个错误(即没有根据 WPF 的布局过程正确调整本机控件的大小......)
  • @elgonzo ,它是一个基于 wpf 的用户控件。我无法指定它的宽度和高度。因为如果我修复了这些,就无法进一步更改
  • 我怀疑 Routine:FlashUserControl 是真正的 WPF 控件。该名称表明它与 Adob​​e Flash(它是一个 ActiveX 控件,因此基于 GDI/GDI+)有关。如果我错了,您将如何解释控件似乎“泄漏”到网格单元之外? (如果控件是 WPF 控件并且太大,网格会根据控件大小调整其大小,或者?)
  • 无论如何,给出的信息指向该控件的布局例程存在错误,您应该告知其作者该问题。
  • @elgonzo,实际上它是我的 wpfcontrol,我开发了它。我只是将名称命名为常规,我将名称更改为另一个名称。是一样的。我把它作为一个用户控件,因为我想把它插入主窗体

标签: wpf user-controls


【解决方案1】:

设置到 Grid 的特定部分的 UI 元素可能超出其界限的原因只有两个。第一个原因可能是如 cmets 中所述,UI 元素已将其 Width 和/或 Height 属性值显式设置为对其可用区域而言太大的值。对此的解决方法显然是显式设置这些值。

第二个原因可能只是您的Grid 没有被正确声明。也许您的行数和/或列数错误?同样,解决这个问题很简单。请出示您的Grid,以便我们验证这一点。

【讨论】:

  • @@Sheridan 我的子 UI 元素值对于其可用区域来说太大了。如何控制这个?我没有设置画布宽度或高度,bt 在内部我的画布有一些元素
  • 如果您使用的第三方控件在内部设置其大小并且不允许您更改它,那么您无能为力,除了查找或定义新控件。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
相关资源
最近更新 更多