【发布时间】:2012-05-17 04:55:25
【问题描述】:
晚上好。我已经研究了我的问题大约两天了,并且已经尝试了至少十几个问题的变体。每一个最后一个都是完全失败的,所以我不会在这里发布任何代码。
我需要的是用于无边框窗口的 StackPanel。 StackPanel 需要有一个不透明的背景,而孩子们需要有一个透明的背景。我需要透明度来一直通过子元素、StackPanel 和底层主窗口。
有没有人知道如何做这件事,我应该从哪里开始?我是一名中级程序员,在这里碰了壁。我试图从 Panel Class 继承,超越通常的嫌疑人; MeasureOverride、ArangeOveride、OnRender 等。
我也有一个想法,是在父节点和所有子节点之间使用某种形式的 CombinedGeometry。
提前致谢!!
【问题讨论】:
-
当您说“StackPanel 需要具有不透明背景”时,我不太明白您的意思。您不想通过完整的元素树获得完全的透明度吗?或者换句话说,如果您有带有一些文本的 TextBlock,您会在桌面(当然还有其他窗口)上看到该文本而没有其他内容?
-
好的,这就是交易。我正在创建一个白板应用程序(出于必要)。我在堆栈面板中有一些项目。顶部是菜单。底部是带有控件的调色板。中间是一块“白板”。白板必须对底层应用程序(主要是 PDF)具有完全的透明度。我需要包含要填充的控件的电路板周围的区域,而不是透明的。这更有意义吗?
-
我还是不明白问题出在哪里。除非您明确设置其背景属性,否则 StackPanel 或任何其他面板已经是透明的。没问题。您还可以将此面板覆盖在任何其他(PDF 查看器?)控件之上。也没有问题。对于白板项目,它们是什么?例如,路径也是透明的,除非它有一个封闭的几何图形并且您设置了它的 Fill 属性。还是没问题。
标签: wpf c#-4.0 wpf-controls