在我的Silverlight 4应用程序中,我需要创建一个不规则形状的用户控件。 UC的“主显示”是一个标准的矩形,但我需要在主显示矩形之外有标签(简单的文本块,用户可以点击)。
Silverlight 4可以实现吗?如果是这样,怎么样?
提前致谢。
答案 0 :(得分:1)
它是,你可以在标签后面有透明的背景,可以让点击通过,有效地表现得好像形状不同。 UserControl仍将具有包括选项卡的矩形形状,除非您将其包装到Popup中并浮动出UC并带有一些偏移量。
答案 1 :(得分:1)
从技术上讲,如果您为UserControl
而不是LayoutRoot
使用Canvas,则可以在Grid
的矩形之外放置元素。画布中的元素不会剪裁到画布大小。但是,我不推荐这样做,因为您将无法使用Margin
来调整其中的控件的大小和对齐方式。最好将所有子控件放在Grid
LayoutRoot
。
这让我们想到了不规范的问题。如果你想“透视”控件的某些部分并能够点击它们(即点击它下面的对象),你需要做的就是保持UserControl
和LayoutRoot
' s Background
到null
或根本没有设置它。只要缺少任何背景,点击就会通过。请注意,如果将背景设置为Transparent
,它将使控件在鼠标输入方面表现为矩形(就好像它用纯色填充)。
另一件事是,如果您想在应用的透明部分下看到HTML控件。然后,你将不得不使用无窗口模式,但这是另一种蠕虫。
答案 2 :(得分:1)
您可以通过多种方式将控件的元素放置在其正常布局之外。您可以使用Canvas
,但如果大部分控件都是标准的Grid矩形,那么您可以使用Grid。诀窍是使用负边距。
<Grid x:Name="LayoutRoot">
<Border Margin="0 -22 0 0">
<TextBlock Text="I appear above the UserControl layout" />
</Border>
</Grid>
请注意,如果将Usercontrol用作Visual根,那么这将无效,因为Silverlight插件不会渲染其客户端矩形。