2

在我的 Silverlight 4 应用程序中,我需要创建一个形状不规则的用户控件。UC 的“主显示”是一个标准矩形,但我需要在主显示矩形之外有选项卡(简单的文本块,用户可以在其中单击)。

Silverlight 4可以做到这一点吗?如果是这样,怎么做?

提前致谢。

4

3 回答 3

1

您可以通过多种方式将控件的元素置于其正常布局之外。您可以使用Canvas,但如果大多数控件是标准网格矩形,那么您可以使用网格。诀窍是使用负边距。

 <Grid x:Name="LayoutRoot">
     <Border Margin="0 -22 0 0">
         <TextBlock Text="I appear above the UserControl layout" />
     </Border>
 </Grid>

请注意,如果将 Usercontrol 用作 Visual 根,那么这将不起作用,因为 Silverlight 插件不会在其客户端矩形之外呈现。

于 2011-03-30T20:42:52.647 回答
1

从技术上讲,UserControl如果您使用 CanvasLayoutRoot而不是Grid. 画布中的元素不会被裁剪到画布大小。但是,我不建议这样做,因为您将无法在Margin其中调整控件的大小和对齐方式。最好将所有子控件都放在一个Grid LayoutRoot.

这给我们带来了不规则的问题。如果您想“看穿”控件的某些部分并能够单击它们(即单击其下方的对象),您需要做的就是保持UserControl's 和LayoutRoot'sBackgroundnull或根本不设置它。只要没有任何背景,点击就会通过。请注意,如果您将背景设置为Transparent它,则相对于鼠标输入,控件将表现为一个矩形(就好像它填充了纯色一样)。

另一件事是,如果您想在应用程序的透明部分下查看 HTML 控件。然后,您将不得不使用无窗口模式,但这是另一种蠕虫。

于 2011-03-30T15:35:20.500 回答
1

它是,您可以在选项卡后面有透明背景,可以让点击通过,有效地表现得好像形状不同。UserControl 仍将具有包括选项卡在内的矩形形状,除非您将其包裹到 Popup 中并以一定的偏移量从 UC 中浮出。

于 2011-03-30T15:18:13.690 回答