【问题标题】:How to create a UserControl with an irregular shape?如何创建形状不规则的用户控件?
【发布时间】:2011-07-26 04:29:09
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: silverlight silverlight-4.0 controls shape


    【解决方案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 插件不会呈现超出其客户矩形的范围。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        从技术上讲,如果您为LayoutRoot 使用画布而不是Grid,则可以在UserControl 的矩形之外添加元素。画布中的元素不会被裁剪到画布大小。但是,我不建议这样做,因为您将无法使用Margin 来调整其中的控件大小和对齐。最好将所有子控件都放在 Grid LayoutRoot 中。

        这给我们带来了不规则的问题。如果您想“透视”控件的某些部分并能够单击它们(即单击其下方的对象),您需要做的就是保留UserControlLayoutRootBackgroundnull 或者根本不设置它。只要没有任何背景,点击就会通过。请注意,如果您将背景设置为Transparent,它会使控件在鼠标输入方面表现得像一个矩形(就像用纯色填充一样)。

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

        【讨论】:

        • 透明背景效果很好,但 Anthonies 解决方案更适合我的需求,因为它更易于处理。还是谢谢!
        猜你喜欢
        • 2015-11-06
        • 1970-01-01
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 1970-01-01
        • 1970-01-01
        • 2012-06-20
        相关资源
        最近更新 更多