问题标签 [custom-panel]

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 投票
2 回答
637 浏览

xaml - 在 Silverlight 3 中将可见元素添加到自定义面板

据我了解,面板并不意味着有任何可见的“镀铬”。StackPanel、Grid 和 Canvas 没有任何可见元素(除了网格线,他们说它们仅用于调试布局。)

在我的示例中,我将创建一个使用附加属性来布置其子控件的自定义面板。但是,我希望我的自定义面板在背景中呈现各种可见的“网格”。网格的外观(大小和定位)将取决于子元素的大小和位置。

有哪些方法可以实现这一目标?作为 Silverlight 和 XAML 的新手,我的第一个猜测是创建一个自定义控件,其中包括用于布局的自定义面板。

我想我将能够找出具体的代码,但我需要指出正确的方向,即哪些构建块适合这种情况。

0 投票
1 回答
834 浏览

silverlight - Silverlight 中的自定义右对齐 StackPanel 控件布局

我正在尝试创建一个自定义布局容器,具有与 StackPanel 相同的特性,但它从屏幕右边缘开始布局项目。不用说它不能正常工作。

我在 ArrangeOverride() 中发现了一个缺陷,其中行

只需创建一个点@ 0, 0。换句话说,this.DesiredSize.Width = 0。我知道测量步骤发生在安排步骤之前,所以我希望这个控件将设置 DesiredSize 属性。否则我怎么能从屏幕右侧开始渲染?甚至可能吗?

其次,传递给函数的finalSize参数比我在测试 xaml 中定义的三个按钮所需的区域大得多。大约 1676 x 909 与所需的 250 x 60 左右。谢谢你。

这是我的代码:

0 投票
2 回答
4773 浏览

java - Izpack: Creating custom panels

I am trying to create a custom panel for an IzPack installer. This means that I have to extend IzPanel. However, it appears that if I do this, the extended panel needs to be in the com.izforge.izpack.panels package.

Then I found this post, which stipulates that:

  1. As such, you must include installer.jar from the lib folder of IzPack in the build path of your custom panel project.
  2. Your custom panel /must/ extend com.izforge.izpack.installer.IzPanel.
  3. Furthermore, it /must/ reside in the com.izforge.izpack.panels package.
  4. On top of it all, your build jar's name /must/ be the same as the unqualified name of your custom panel class.

I take issue with the 1st and 4th points. They imply that I have to create an additional JAR file for each custom IzPanel that I create. Also, I would have to modify the IzPack installation by adding these JARs to one of its subdirectories.

Is this article outdated (2008) and can it be safely ignored, or is this still true?
If not how can I avoid this and simply have the extended IzPanel on the classpath instead?

Thank you!

0 投票
1 回答
1481 浏览

wpf - 自定义面板中的自定义滚动问题

我正在编写一个代表卡片手的自定义面板。这是一个将卡片水平堆叠的面板。如果没有足够的空间,每张卡片将与左边卡片的一部分重叠。最小部分应始终可见。我完成了这个,这是代码:

我想在达到最小部分时添加滚动条,以便用户仍然可以查看所有卡片。我无法做到这一点。我尝试使用这样的 ScrollViewer:

但这不起作用,因为一旦水平滚动条可见,Hand 面板的 MeasureOveride 和 ArrangeOverride 就不会被调用,即使它会被调用,Hand 也会获得所需的大小来排列所有子项而不重叠。

这完全可以用 ScrollViewer 完成吗?如果没有,我们将不胜感激。谢谢大家的帮助。

尤里卡

0 投票
1 回答
2831 浏览

c# - 在设计窗口中向自定义面板添加控件

所以我创建了一个自定义面板类,如public class CustomPanel : Panel. 当我在解决方案资源管理器中双击它时,它的设计会打开,但它是空的(看不到面板本身,只有文本:“要将组件添加到您的类,将它们从工具箱中拖出等等......”。

问:我应该怎么做才能使我的自定义组件在其设计窗口中可编辑?在任何地方都找不到任何东西..

0 投票
1 回答
1111 浏览

c# - 自定义 VirtualizingPanel:IItemContainerGenerator.IndexFromGeneratorPosition(position) 返回 -1

我正在构建一个自定义 VirtualizingPanel 以用于 ListBox 控件。我正在做一些测试,我在方法中遇到问题

如果我在承载 ListBox 的 UserControl 的构造函数(在 Loaded 事件之前)中设置 ListBox 的 ItemsSource,它将返回 -1。但是,如果我要在 Loaded 事件中设置 ListBox 的 ItemsSource,它不会返回 -1。

当我执行 IItemContainerGenerator.Remove(position, offset) 方法时发生 NullReferenceException 时,就会出现问题。

下面的代码显示了我虚拟化项目的方法

目前我把这个(修复?hack?)放在我的 VirtualizingPanel 的构造函数中

我应该如何以正确的方式解决这个问题?有什么建议么?

0 投票
0 回答
40 浏览

visual-studio-2010 - 在 C# 中的用户单击时重新设计自定义面板

我在 Visual Studio 2010 的 WinForm 中使用 C#。我制作了一个自定义面板,里面有 10 个富文本框。每个富文本框都引用自定义面板表中的一列。自定义面板在运行时加载到拆分容器内。当用户点击自定义面板时,它应该缩小到一半,但只有 4 个特定的文本框。我怎样才能做到这一点?回顾一下:当用户单击它时,我需要自定义面板从 10 个文本框减少到 4 个文本框。提前感谢您的帮助。

0 投票
2 回答
920 浏览

vb.net - 如何创建自己的面板,里面有四个标签?

我想创建一个包含 1 个面板和 4 个标签的用户控件

这是我到目前为止所尝试的

这是设计器文件

当我尝试将此用户控件添加到我的表单时,我收到此错误

“加载工具箱项目失败,将从工具箱中删除” 错误图像

我该如何解决这个问题?

0 投票
0 回答
164 浏览

c# - 不能从 VirtualizingPanel 或 OrientedVirtualizingPanel 继承

我想创建一个自定义的虚拟化面板,它可以用作 Windows Store 应用程序或 UWP 项目中 ItemsControl 的 ItemsPanel。我认为这将是继承和扩展 VirtualizingPanel 或 OrientedVirtualizingPanel 的最简单方法。但两者都表示它们“不包含带有 0 个参数的构造函数”。这是否意味着他们不能被继承?如果是这样,那么我应该扩展哪个类?

0 投票
0 回答
51 浏览

java - 如何在线程结束时处理我当前的 JFrame?

我正在尝试为 Java WAVPlayer 应用程序创建自定义加载屏幕。初始 JFrame 包含一个自定义 JPanel,它显示一个圆形加载栏。该栏的进度在其自己的线程中进行控制和更新LoadThread。在这个线程结束时,我希望关闭当前的 JFrame。

我知道我不能只this.dispose()LoadThread. 我尝试使用一个实例布尔变量来控制 JFrame 何时应该被释放——这是一个明显的失败。我曾尝试使用多个线程来控制不同的进程,但这很快就变得过于复杂(并且没有产生我想要的结果)。我阅读了 Java 的 SplashScreen 类,这可能是最简单的方法。我已经为此工作了几天,我真的只是想弄清楚我要完成的工作是否可行/必要。

下面:自定义面板类LoadPanel,JFrame窗体LoadingFrame,主类WAVPlayer