问题标签 [arrangeoverride]

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 回答
533 浏览

wpf - ItemsPanel 的 VerticalAlignment

iv'e 有一个从堆栈面板派生的自定义面板

这个面板有一个布局逻辑,它取决于面板的垂直对齐

CS :

1)我希望 ItemsPanel 的 VerticalAligment 属性继承自它是子项的项控件,似乎它没有,因为它设置为默认的“Stretch”值。

2)即使在 ItemsPanel 上显式设置 VerticalAlignment 时,如果我不硬编码,则在 ArrangeOverride 范围内将 VerticalAlignment 的值设置为“Stretch”,并且仅在稍后(我使用 snoop 观察)设置为“Bottom”价值 。

XAML:

a) 不起作用:使用绑定,设置值但仅在 ArrangeOverride 之后。

b) 工作:明确硬编码值。

在我的 Windows XAML 中, ItemsControl (PipeControl) 设置为所需的 VerticalAlignment 。

所以我的问题:

1)为什么没有继承价值?

2)为什么在 ArrangeOverride 发生之前没有通过绑定设置值?

提前致谢 。

0 投票
1 回答
545 浏览

php - 重新排列 php 数组;将索引设置为数组值

我有一个数组,我添加到这篇文章的末尾。我需要将数组的“父”值设置为父数组索引号。与父数组 idnumber 值相关的数组父值。

例如;

父数组

所以新数组;

但对我来说这个问题的困难部分;idnumbers 必须是唯一的,但前 22 个数组(其父值为 0) idnumbers 可以在其余数组 idnumber 中找到(不多)。这对我来说很难解决这个问题。我尝试了不同的方法,但每种方法都没有效率如我所愿。

0 投票
2 回答
1452 浏览

wpf - WPF - 自定义面板大小到内容

我的面板尝试执行类似于 UniformGrid 的操作,除了 ItemContainerWidth (40.0) 和 ItemContainerHeight (20.0) 依赖属性之外,它还有一个 ColumnNumber 属性。

我希望我的面板根据它的内容调整大小。

我的 MesureOverride :

我的安排覆盖:

我的面板的 ActualWidth 和 Height 等于 finalSize ,我希望面板的尺寸是从 MeasureOvride (constraint) 返回的尺寸,

如果我强制我的面板在屏幕上的位置不同,我只想让我的面板调整到它的内容,如 WrapPanel 或 StackPanel,

最终尺寸

最终尺寸

用于测试目的的约束大小 (100,100)

有约束大小

我对面板的使用:XAML:

0 投票
4 回答
842 浏览

jquery - if/else 完成时的 jQuery

如果在使用 jQuery 时遇到问题,我不知道如何解决。简单地说,我得到了以下内容:

如果条件与“if”匹配,则一切正常,叠加层充满了内容,并将添加到正文中。

当条件与“else if”匹配时,我收到一个错误,即覆盖未定义。

所以我放了一些 console.log() 来看看我的代码在做什么。两个 console.log 操作都被触发,但在我的浏览器控制台中,我首先看到了“第二个日志”,然后是“第一个日志”。

我的代码正在尝试在“if / else if”完成之前添加,即使条件匹配。

我试图寻找答案,但我根本找不到任何东西,所以我希望这里有人可以帮助我。谢谢!

我的代码的jsfiddle

0 投票
1 回答
392 浏览

wpf - WPF:在动画期间仅调用一次测量/排列

我正在开发一个自定义的类似网格的面板,其中一个元素可以缩放。首先,所有元素都具有相同的大小。如果一个应该被缩放,它会得到两倍于以前的大小,其余元素均匀地填充剩余空间(因此,除了与缩放元素在同一行或列中的元素之外,所有元素的高度和宽度都会变小,在同一行获得更小的宽度和缩放的高度等)。

一切正常,直到我为缩放添加动画。

我正在计算测量过程中每个元素的大小,起初我用计算出的大小来测量每个元素。元素本身的大小为 NaN,直到它们被缩放。我通过将它们设置为最终大小来缩放它们,然后开始从旧到新的双重动画。

但是,当我添加动画时,仅在第一个动画步骤中调用了测量和排列。当我尝试使用 availableSize 或无限大小来测量元素时,动画效果很好,但是元素在它们变小的维度上没有正确调整大小。

有谁知道如何解决其中任何一种行为?

问候托拜厄斯

编辑:动画代码:

0 投票
2 回答
580 浏览

wpf - 为什么 ArrangeOverride 会重新计算最终大小

对我自己来说,如果MeasureOverride计算FrameworkElement的大小,而ArrangeOverride 只是定位子元素,那将是合乎逻辑的。但是ArrangeOverride不仅仅排列子元素。它还会再次计算我不明白的FrameworkElement的大小。为什么MeasureOverride不能计算最终大小,仅此而已?

0 投票
2 回答
5347 浏览

c# - WPF MeasureOverride 和 ArrangeOverride

我的问题更多是理论上的问题,而不是功能性的。所以我正在寻找的是一个可以用一些文档来支持的答案。

我发现自己需要为 wpf 控件的子项进行一些自定义测量/安排?

  1. 是否可以根据其他尺寸限制而不是作为参数接收的尺寸来测量孩子。
  2. 我想要实现的一些伪代码:

    /li>

是否应该将所有逻辑都存在于 MeasureOverride 中,或者我应该只调用度量,并将接收到的大小作为所有子项的参数,然后在 ArrangeOverride 中执行逻辑?谢谢!

0 投票
1 回答
105 浏览

c - 查找或排列给定数字的所有组合

我希望你一切都做得很好。我有一个有趣的问题,一直困扰着我。它是关于以精确的顺​​序生成组合。例如,我有 4 个变量(可以变化),这 4 个变量有一些增加的限制,例如在这种情况下 2。所以我想按以下顺序生成 2d 矩阵:


变量的数量(在这种情况下为 4)可以改变,并且最大限制(在这种情况下为 4)也可以改变。即使我也找到了所有可能的组合,但我无法按此顺序排列它们。如果有人给出答案,那就太好了。干杯!

0 投票
0 回答
204 浏览

wpf - 拦截自定义 WPF 画布子控件的设计时拖动和调整大小

我能够将设计时装饰器添加到 WPF 控件,但是如何控制那些内置在设计器中的控件?(换句话说,我希望当有人使用标准设计师的拇指/橡皮筋/装饰器/...拖动或调整控件大小时调用我的函数)

.

以下是有关我要完成的工作的详细信息

我正在编写一个类似 WPF Canvas 的控件,该控件具有自定义规则来放置和调整其子项的大小。(它也应该旋转,但这是另一个问题)

实现此目的的一种方法是像这样覆盖 ArrangeOverride():

它可以工作,但是如果您尝试在设计器中拖动或调整子控件的大小,它会跳转到如果它位于普通 WPF 画布上的位置(即 X = Left ,而不是 X = Left - Width / 2 as ArrangeOverride规定)

看来我需要控制设计师。微软甚至提供了如何做到这一点的文档:演练:创建设计时装饰器。它似乎可以工作,但是我找不到一种方法来控制Visual Studio 中内置的装饰器如何工作(选择控件时出现在控件周围的那些大小拇指),只有如何添加新的。当然,我可以只添加一些并指示任何人不要碰标准的,但它看起来像一个丑陋的组合。

出于这个问题的目的,可以安全地假设我可以访问画布及其子画布的源代码(即可以覆盖方法),尽管首选只需要更改父画布的方法。

关于设计器可扩展性的官方文档让我有些困惑。我也没有运气在网上搜索此事。因此,任何有用的线索都将不胜感激——比如书籍、文章、示例、参考源链接等。

0 投票
1 回答
542 浏览

c# - 在任何给定面板子类的 ArrangeOverride 的基本实现期间,如何将 Rect 传递给 UIElement 的 Arrange 方法?

在 DockPanel 子类的 ArrangeOverride 方法中,我们要做的第一件事是调用基本实现,因为它是处理实际排列的人。但是,这里不讨论“为什么”(因为它与问题无关),然后我们需要获取 ArrangeOverride 的基本实现传递给最后一个孩子的 Arrange 方法的 Rect。

有什么方法可以查询 UIElement 以查看传递给其 Arrange 方法的矩形?

例如...

我们发现的唯一方法是自己重新实现 ArrangeOverride,因为我们显然会知道使用的 Rect。但是,我们正在尝试编写可以与任何面板子类一起使用的代码。